0

こんにちは、イベントとそのハンドラーがプログラミングの最も弱い点であるため、これをどこから始めればよいかわかりません。...

setInterval(function(){
   //code goes here
},1000);

私たちが知っているように、これは無限/ループで実行されます

私の質問は、関数内のコードが終了するのに 1 秒以上 (例: 5 秒) かかる場合、2 番目、3 番目、および n 番目の間隔でスクリプトの実行が遅くなるかどうかです。

上記と同様に:onclick関数で要素をクリックすると、スコープターンになるまで実行されません...

スコープが0の場合、最初の間隔を終了させて​​から再度実行する方法はありますか...

つまり、ユーザーの行動を優先するということです。

私が多くの意味を成しているかどうかはわかりませんが、以下にコメントしてください。もっと説明しようとします.

4

2 に答える 2

0

http://www.w3schools.com/js/js_timing.asp

scroll@ Infinite Loop は、それをキャンセルする方法、または再実行する前に終了するのを待つ方法を説明しています...

于 2010-01-12T22:02:53.807 に答える
0

setInterval内部のコードにかかる時間に関係なく、定義された間隔でループの新しい反復を実行します。これは、ブラウザを動かなくなったりロックしたりするのに最適な方法です。

探しているイベントとその流れ方に応じて、さまざまな方法でこれを処理できます。

主に jQuery で作業している場合、コードの残りの部分が完了したら、jQuery の queue() メソッドを使用して、関数自体を再帰的に呼び出すことが 1 つのオプションになります。うまくいくかもしれない単純なケースでは。

コードが実際にユーザーに依存している場合は、ユーザーがそのアクションを実行したときにコードをトリガーするために、click() や bind() などの jQuery の多くのイベント ハンドラーの 1 つを使用するだけではありません。

詳細な情報がなければ、特定の解決策を提供することは困難です。

于 2010-01-12T21:38:44.527 に答える