まず、タイマーの使用法を見てみましょう
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() も適用できるため、ここでは詳細を説明しません。