私は現在、永遠にループを実行する JavaScript を作成しています。ただし、数時間後にスクリプトが機能しなくなり、スクリプトを続行するか停止するかを尋ねられます。とにかくこれを修正するか、いくつかの自動化ツールを使用して Firefox を再起動し、JavaScript を再度実行します。ほとんどの時間、私はキーボードから離れているので
2 に答える
0
JavaScript プロンプトが長時間実行されるのを防ぐには、時々 JavaScript に他のイベントを処理させる必要があります。これを行う古典的な方法は、このように を使用していsetTimeout()
ます。
function doNextChunkOfWork() {
// do some work here
if (moreWorkToDo) {
setTimeout(doNextChunkofWork, 1);
}
}
を使用setTimeout()
すると、JavaScript エンジンがイベント キューに戻って他のイベントを処理できるため、実行時間の長いスクリプトの警告が回避されます。
本当に何をしようとしているのかを説明していただければ、さらに良いオプションを提案できるかもしれません。ある種の無限ループを実行している場合、ブラウザーの JavaScript は、通常のメカニズムがイベント ハンドラーを作成し、イベントがコードを実行するようにするイベント ドリブン環境であることを意味します。何かをポーリングする無限ループ用ではありません。
于 2013-11-09T06:10:14.547 に答える
0
id は、いかなる種類の無限ループも使用しないことを強くお勧めします。使用すると、問題が発生するだけです。setTimeout()
代わりに、javascriptや関数の使用を検討したいsetInterval()
... X ミリ秒ごとに実行するコードのブロックを指定できるようにする
ここでドキュメントを見つけることができます
于 2013-11-09T06:10:28.393 に答える