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)