ホームページ  >  記事  >  ウェブフロントエンド  >  js タイムアウト呼び出し setTimeout と断続的呼び出し setInterval インスタンス分析_JavaScript スキル

js タイムアウト呼び出し setTimeout と断続的呼び出し setInterval インスタンス分析_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 16:17:351283ブラウズ

この記事では、js タイムアウト呼び出し setTimeout と断続的呼び出し setInterval の使用法を分析します。皆さんの参考に共有してください。詳細は以下の通りです。

今日、『JavaScript Advanced Programming (Third Edition)』という本を読みましたが、setTimeout の方が setInterval よりも優れていることがわかりました。それは本当だと思います。私は通常 setInterval をよく使用しますが、今は考えを変える必要があります。また勉強になりました。分析は次のとおりです:

setTimeout には 2 つのパラメーターが含まれており、最初のパラメーターは実行されるコード、2 番目のパラメーターは時間です。
最初のパラメータには文字列または関数を使用できますが、文字列の代わりに関数を使用することをお勧めします。
文字列の使用は eval メソッドと同等です。パフォーマンスの低下につながります。

clearTimeout()

タイムアウトを指定して呼び出されたコードはグローバル スコープで実行されるため、関数内の this の値は厳密モードのウィンドウ オブジェクトを指し、厳密モードでは未定義です

コードをコピー コードは次のとおりです:
//setInval

var num = 0;
var max = 10;
var intervalId = null;

関数 incrementNumber(){
番号 ;
if(num == max){
clearInterval(innervalId);
alert('done');
}
}

intervalId = setInterval(incrementNumber(),500);

//setTimeout は同じ関数を実装します

var num = 0;
var max = 10;
関数incrementNumber2(){
番号 ;
if(数値 setTimeout(incrementNumber2,500);
}その他{
alert('done');
}
}
setTimeout(incrementNumber2,500);

上記の比較は、タイムアウト呼び出しを使用する場合、タイムアウト呼び出し ID を追跡する必要がないことを示しています。これは、コードの各実行後、別のタイムアウト呼び出しが設定されていない場合、呼び出しは自動的に停止するためです。

一般に、断続的な呼び出しをシミュレートするためにタイムアウト呼び出しを使用する場合、それが最適なモードであると考えられています。

開発環境では、前の断続的な呼び出しが終了する前に、後の断続的な呼び出しが開始される可能性があるため、真の断続的な呼び出しはまれです。

断続的な通話は使用しないことが最善です。

この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。