[解決済み] ジャバスクリプトにディレイを入れる
2023-07-26 02:59:04
質問
Javascriptのコードに100ミリ秒程度の遅延を加える必要があるのですが、そのために
setTimeout
の関数を使いたくないのです。
window
オブジェクトを使用し、ビジーループを使用したくありません。 どなたかご提案いただけないでしょうか?
どのように解決するのですか?
残念ながら
setTimeout()
は唯一の
信頼できる
の方法(唯一の方法ではなく、唯一の
信頼できる
方法) で、UI をブロックすることなくスクリプトの実行を一時停止することができます。
これを書く代わりに、実際に使うのはそんなに難しくない。
var x = 1;
// Place mysterious code that blocks the thread for 100 ms.
x = x * 3 + 2;
var y = x / 2;
を使う場合
setTimeout()
を使ってこのように書き換えます。
var x = 1;
var y = null; // To keep under proper scope
setTimeout(function() {
x = x * 3 + 2;
y = x / 2;
}, 100);
を使用することは理解しています。
setTimeout()
を使うことは、望ましい
sleep()
という関数がありますが、残念ながら後者は存在しません。そのような関数を実装しようとすると、多くの回避策が存在します。ビジーループを使用するものもあります。
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
他
を使って
XMLHttpRequest
をサーバスクリプトに結びつけ、一定時間スリープさせてから結果を返す。
.
残念ながら、これらは回避策であり、他の問題 (ブラウザのフリーズなど) を引き起こす可能性があります。単純に推奨される方法、すなわち
setTimeout()
).
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】JavaScript版sleep()とは?)
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] Javascript 空の配列の削減
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】javascriptでタイムディレイを設定する方法
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] node.jsで文字列のsha1ハッシュを取得するにはどうすればよいですか?
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] BlobからArrayBufferへ移行する方法
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] なぜjavascriptのES6 Promisesはresolve後も実行を継続するのですか?
-
[解決済み] JavaScriptのArray.sort()メソッドでシャッフルするのは正しいのか?
-
[解決済み] querySelectorAllがない場合、ライブラリを使用せずに属性で要素を取得する?