一定時間後に一度だけ処理を行う

一定時間後に一度だけ処理を行う

説明

setTimeout()を使えば指定した処理を指定秒後に1回だけ呼び出す事ができます。秒数はミリ秒で指定するため1秒後に処理するのであれば1000を指定します。3*1000であれば3秒後に処理が実行されることになります。ただし、setTimeout()で指定した時間は厳密なものではないため、動作時間に関しては保証されません。また、1回のみではなく定期的に処理を呼び出すにはsetInterval()を使います。
 setTimeout()で設定したタイマーを解除するにはclearTimeout()を使います。setTimeout()はタイマーが設定されるとタイマーIDを返します。このタイマーIDをclearTimeout()のパラメータに指定することでタイマーを停止させることができます。ただし、一度停止してしまったタイマーを再開させる機能はありません(一時停止の機能はありません)。
JavaScriptテクニック ブック  詳しい解説などはJavaScriptテクニック ブックを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>一定時間後に一度だけ処理を行う</h1>
<p>【段落1】3秒後に全ての段落のスタイルが変更されます</p>
<p>【段落2】3秒後に全ての段落のスタイルが変更されます</p>
<p>【段落3】3秒後に全ての段落のスタイルが変更されます</p>
</body>
</html>

window.onload = function(){
setTimeout("styleChange.paragraph()", 3*1000);
}
var styleChange = {
paragraph : function(){
var pTag = document.getElementsByTagName("p");
for(var i=0; i<pTag.length; i++){
pTag[i].className = "normal";
}
}
}