首頁技術文章正文

setTimeout函數(shù)用法:setTimeout()方法用法介紹

更新時間:2020-08-24 來源:黑馬程序員 瀏覽量:

setTimeout定義和用法

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

語法

setTimeout(code,millisec)


setTimeout()用法

setTimeout 方法接收兩個參數(shù),第一個參數(shù)為回調函數(shù)函數(shù)或字符串,第二個參數(shù)為觸發(fā)時間(單位:毫秒)

參數(shù)描述
code必需。要調用的函數(shù)后要執(zhí)行的 JavaScript 代碼串。
millisec可選。執(zhí)行或調用 code/function 需要等待的時間,以毫秒計。默認為 0。

param1, param2, ...

可選。 傳給執(zhí)行函數(shù)的其他參數(shù)(IE9 及其更早版本不支持該參數(shù))

setTimeout()實例演示

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>等待3秒演示</title>
</head>
<body>
<h1> <font color=blue>等待3秒鐘示演示</font> </h1>
<script>
    setTimeout("alert('對不起, 三秒鐘已到')", 3000 )
</script>
</body>
</html>


打開上面代碼網頁,三秒后就會出現(xiàn)一個 alert 對話盒,提示“對不起, 三秒鐘已到”。

1598255229673_settimeout.png

setInterval()定義和用法

setInterval() 方法可按照指定的周期(以毫秒計)來調用函數(shù)或計算表達式。

setInterval() 方法會不停地調用函數(shù),直到 clearInterval() 被調用或窗口被關閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數(shù)。

語法

setInterval(code,millisec[,"lang"])


參數(shù)描述
code

必需。要調用的函數(shù)或要執(zhí)行的代碼串。

millisec

必須。周期性執(zhí)行或調用 code 之間的時間間隔,以毫秒計。


代碼演示:

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

盡量不要用setInterval()

原因如下:

(1)setInterval()無視代碼錯誤

setInterval有個討厭的習慣,即對自己調用的代碼是否報錯這件事漠不關心。換句話說,如果setInterval執(zhí)行的代碼由于某種原因出了錯,它還會持續(xù)不斷(不管不顧)地調用該代碼。

(2)setInterval無視網絡延遲

假設你每隔一段時間就通過Ajax輪詢一次服務器,看看有沒有新數(shù)據(注意:如果你真的這么做了,那恐怕你做錯了;建議使用“補償性輪詢”(backoff polling))。而由于某些原因(服務器過載、臨時斷網、流量劇增、用戶帶寬受限,等等),你的請求要花的時間遠比你想象的要長。但setInterval不在乎。它仍然會按定時持續(xù)不斷地觸發(fā)請求,最終你的客戶端網絡隊列會塞滿Ajax調用。

(3)setInterval不保證執(zhí)行

與setTimeout不同,你并不能保證到了時間間隔,代碼就準能執(zhí)行。如果你調用的函數(shù)需要花很長時間才能完成,那某些調用會被直接忽略。

settimeout和setinterval區(qū)別

setTimeout() 方法用于在指定的毫秒數(shù)后調用函數(shù)或計算表達式,而setInterval()則可以在每隔指定的毫秒數(shù)循環(huán)調用函數(shù)或表達式,直到clearInterval把它清除。

也就是說setTimeout()只執(zhí)行一次,setInterval()可以執(zhí)行多次。

兩個函數(shù)的參數(shù)也相同,第一個參數(shù)是要執(zhí)行的code或句柄,第二個是延遲的毫秒數(shù)。

業(yè)務場景的區(qū)別

·setTimeout用于延遲執(zhí)行某方法或功能。

·setInterval則一般用于刷新表單,對于一些表單的假實時指定時間刷新同步。


猜你喜歡:

如何在JavaScript中獲取當前日期?

JavaScript中如何搜索數(shù)組元素?

JavaScript中Math常用屬性和方法有哪些?

Web前端培訓課程

分享到:
在線咨詢 我要報名
和我們在線交談!