ホームページ  >  記事  >  ウェブフロントエンド  >  parameters_javascriptスキルを使用したタイマー(setTimeout/setInterval)呼び出し関数の失敗の解決策

parameters_javascriptスキルを使用したタイマー(setTimeout/setInterval)呼び出し関数の失敗の解決策

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

まず、タイマーの使用法を見てみましょう
1. setInterval(code,millisec[,"lang"]) setInterval() メソッドは、指定された期間 (ミリ秒単位) に従って関数を呼び出したり、式を計算したりできます。

参数 描述
code 必需,要调用的函数或要执行的代码串。
millisec 必需,周期性执行或调用 code 之间的时间间隔,以毫秒计。

2.setTimeout(code,millisec) setTimeout() メソッドは、指定されたミリ秒数の後に関数を呼び出すか、式を計算するために使用されます。
参数 描述
code 必需,要调用的函数后要执行的 JavaScript 代码串。
millisec 必需,在执行代码前需等待的毫秒数。

ヒント: setTimeout() はコードを 1 回だけ実行します。複数回呼び出す場合は、setInterval() を使用するか、コード自体で setTimeout() を再度呼び出すようにします。
setInterval() であっても setTimeout() であっても、パラメータを含む関数がコード パラメータに配置されると、タイマーが失敗するという問題に遭遇したことがあるかもしれません。
コードをコピー コードは次のとおりです。

function test(str){
alert(str) );
}
var a = "abcde"
setTimeout(test(a),3000);

上記のコードが実行されると、ページの呼び出しは遅延しません。 test(a) は 3 秒間実行されますが、すぐに test(a) が実行されます。この問題は IE、FF、Chrome でよく発生します。どのように解決すればよいでしょうか。
著者はここで一般的に使用される 2 つの解決策をまとめています。もちろん、他の解決策もあるはずなので、ここでは詳しく説明しません。
方法 1:

関数テスト (str){
alert(str);
}
var a = "abcde"
setTimeout(function(){
test(a);
}, 3000);

方法 2: 呼び出す関数を引用符で囲みます
コードをコピーします コードは次のとおりです。

function test(str){
alert(str);
}
var a = "abcde"
setTimeout("test( ' a ')",3000) ;

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