web-dev-qa-db-ja.com

JavaScript遅延関数を作成する方法

Javascriptファイルがあり、いくつかの場所で少し遅延を追加したいので、スクリプトはそのポイントに到達し、3秒待ってから、残りのコードを続行します。これを行うことを考えた最良の方法は、スクリプトのどこからでも呼び出すことができる関数を作成することでした。

function startDelay(lengthOfDelay)
{
//code to make it delay for lengthOfDelay amount of time
}

ただし、コードを実装して待機させる方法は見つかりません。 setTimeoutを見てきましたが、それに関数をハードコーディングする必要がありました。

スクリプトを数秒間停止させる方法はありますか?コードが一時停止している間、UIがフリーズしても問題ありません。

そうでない場合、これを達成するためにPHP sleep()を使用できる方法はありますか?(PHPはサーバー側で、Javascriptはクライアント側ですが、おそらく聞いたことがない方法があるかもしれません。)

21
user2370460

setTimeoutで匿名関数を使用する必要はありません。次のようなことができます:

setTimeout(doSomething, 3000);

function doSomething() {
   //do whatever you want here
}
46
Kassem

私はちょうどこの答えを別のフォーラムで見つけました: JavaScriptのスリープ/続行する前に待つ

回答ありがとうございます。

3
user2370460

ああ、はい。非同期実行へようこそ。

基本的に、スクリプトを一時停止すると、ブラウザとページが3秒間応答しなくなります。これはWebアプリにとって恐ろしいことなので、サポートされていません。

代わりに、「イベントベース」を考える必要があります。 setTimeoutを使用して、一定時間後に関数を呼び出します。これにより、その間はページ上でJavaScriptが引き続き実行されます。

2
DanRedux

次の例を使用して遅延を作成できます

setInterval(function(){alert("Hello")},3000);

を#ミリ秒に置き換えます

実行する内容を関数内に配置できます。

0
CBC_NS