默認的
setTimeout 只執行一次, 清除用clearTimeout
setInterval 每間隔指定的時間, 就執行一次, 清除用clearIntervaljavascript
可是, setTimeout也能夠用來執行 每隔必定時間間隔就執行一次, 方法是在 函數內部使用 "遞歸"的調用.java
foo(); //調用一次foo函數 function foo(){ // 函數主體 // ... 該數據處理的, 執行數據處理; // ... 該輸出的, 就輸出 // ... 該顯示的, 你顯示 // 主體執行完了 setTimeout(foo, 5000); } // 這個方法, 是一種 固定的 套路 用法, 固定的寫法.
// 獲取當前的日期和時間 var datetime/dt= new Date(); alert(dt) // datetime 顯示的是: 星期 月日年 時間HH:ii:ss GMT+0800
/* 在setInterval中使用匿名函數. */ <script src="js/jquery-1.10.2.js"></script> <script type="text/javascript"> $(function() { var i = 0; var timer = setInterval(function(){ var dt = new Date(); var month = dt.getMonth()+1; alert('如今是: '+ dt.getFullYear()+'年, '+ month +'月, '+dt.getDate()) + "日"; i++; if (i>= 3){ clearInterval(timer); // 在setInterval函數內部, 就可使用clearInterval清除計時器. } },500); }); </script>
/* 在setInterval中使用code,delay參數. */ <script type="text/javascript"> $(function() { var timer = setInterval(showDate,500); // 這裏千萬注意, 參數code, 就直接寫函數名, 不要加括號,也不要引號 var i = 0; // 這個初始化要放在函數的外面,才能保證只執行3次. function showDate(){ var dt = new Date(); var month = dt.getMonth()+1; alert('如今是: '+ dt.getFullYear()+'年, '+ month +'月, '+dt.getDate() + "日"); i++; if (i>= 3){ clearInterval(timer); } } });
// 使用setTimeout實現屢次計時器 // /*=========================================== // * 特別注意的是, var i=0 循環次數控制變量的位置, 放在函數調用前/後, // * 循環的次數是不一樣的, 這裏若是var i=0 放在showDate()以後, 將會顯示4次, 而不是預想的3次 // *===========================================*/ <script type="text/javascript"> $(function() { // 先 只 調用一次 "包含" 函數 var i = 0; showDate(); // 定義showDate, 並在函數內部使用: setTimeout(showDate, delay_microsecond) function showDate() { /* 函數主體 跟原來的業務處理 相同 */ i++; var dt = new Date(); var month = dt.getMonth()+1; alert('如今是: '+ dt.getFullYear()+'年, '+ month +'月, '+dt.getDate()) + "日"; if (i>= 3){ return; } setTimeout(showDate, 500); } }); </script>