setTimeout和setInterval的區別


setTimeout()定義和用法

關於setTimeout方法的介紹

定義

setTimeout() 方法用於在指定的毫秒數后調用函數或計算表達式。

語法

setTimeout(code,millisec)
參數
code:必需。要調用的函數后要執行的 JavaScript 代碼串。
millisec: 必需。在執行代碼前需等待的毫秒數。

提示

setTimeout() 只執行 code 一次。如果要多次調用,請使用 setInterval() 或者讓 code 自身再次調用 setTimeout()

function test(){
alert("test");
}
//使用方法名字執行方法
var t1 = window.setTimeout(test,1000);
var t2 = window.setTimeout("test()",3000);//使用字符串執行方法
window.clearTimeout(t1);//清除定時器

setInterval()定義和用法

//實時刷新時間單位為毫秒
setInterval('refreshQuery()',8000); 
/* 刷新查詢 */
function refreshQuery(){
   $("#mainTable").datagrid('reload',null);
}

業務場景

  • setTimeout用於延遲執行某方法或功能
  • setInterval則一般用於刷新表單,對於一些表單的假實時指定時間刷新同步

settimeout傳參數的幾種方法,直接函數句柄調用傳參會導致settimeout失效:

1)字符串調用傳參

function test(name) {
    alert('hello' + ' ' + name); }
let param = 'Jack';
setTimeout('test(param)',1000);

2)將函數調用放在一個匿名函數里直接傳參

function test(name) {
    alert('hello' + ' ' + name);
}
let testName='assistant'
setTimeout(function () {
    test(testName);
}, 1000); //可以獲取到外層參數

3)匿名函數或函數句柄調用可以通過settimeout傳參

setTimeout(
  function(value1,value2){
    console.log(value1+"+"+value2);
    console.log(value1+value2)},2000, 1,2)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM