クライアント側のJavaScriptの実行を、指定されたミリ秒(例:sleep)のブロックを、ページ。不要な計算なしで一定期間JavaScriptをブロックする
待機中に何も起こらないでください。ページが読み込まれ続けるべきではありません。それは敏感ではありません。また、可能であれば1〜10ミリ秒の精度が必要です。待ち時間は1000ミリ秒を超えることがあります。
この問題の標準的な「解決策」は、通常はやりたいことではないので、別の質問をすることです。あなたが通常したいことは、await Promise.delay(1000)
の行に沿った何かです。
私はこれを行うことの問題を十分に認識しており、ほとんどすべての状況で恐ろしいアイデアだと完全に認識していますが、それでもやる必要があります。あなたの魂を楽にするために、このページはヘッドレスブラウザでのみ使用されるため、このハッキングの実行にユーザーが害を受けることはありません。問題へ
実際のソリューションは次のようになります。非常にうまく機能し
while (expectedTime > Date.now()) { }
。しかし、私がしたいのは、イベントループにのストップを伝えるだけで、たくさんの不要な計算を行うという副作用があります。
私は、ページが100msの最初の数秒間にいくつかの同期I/Oを実行し、上記の方法に頼るように強制するかもしれないと思うが、これを達成する方法がわからない。それが役に立ったら、私もサーバーを使うことができます。
WEB Javascriptのコンテキストは、アイドル状態とCPUサイクルを節約するために、内部イベントループを置く利用できる機能のような何の「スリープ」を持っていません。あなたのウェブページが待つべき理由は何ですか? – Stphane