setTimeout和setInterval的區別

2021-09-17 08:31:37 字數 1086 閱讀 1042

雖然網上有很多兩者區別的文章,但是經常搞混了,好記性不如爛筆頭,記錄一下。

語法:

settimeout(code,millisec);

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

它們都有兩個引數,乙個是將要執行的**字串,還有乙個是以毫秒為單位的時間間隔,當過了那個時間段之後就將執行那段**。

這兩個函式的區別就在於,setinterval在執行完一次**之後,經過了那個固定的時間間隔,它還會自動重複執行**,而settimeout只執行一次那段**。

每5秒alert一次時間

var showtimes=setinterval("showtime()", 5000);

function showtime()

settimeout也可以實現,**如下:

var showtimes=null;

showtime();

function showtime()

這樣寫是不是看起來沒有什麼區別,但是settimeout方法不會每隔5秒鐘就執行一次showtime函式,它是在每次呼叫settimeout後過5秒鐘再去執行showtime函式。這意味著如果showtime函式的主體部分需要1秒鐘執行完,那麼整個函式則要每6秒鐘才執行一次。而setinterval卻沒有被自己所呼叫的函式所束縛,它只是簡單地每隔一定時間就重複執行一次那個函式。

所以這兩個函式需根據不同的情景去使用,如果需要在每隔乙個固定的時間間隔後就精確地執行某動作,那麼最好使用setinterval,而如果不想由於連續呼叫產生互相干擾的問題,尤其是每次函式的呼叫需要繁重的計算以及很長的處理時間,那麼最好使用settimeout。

setinterval和settimeout都返回定時器物件識別符號,用於clearinterval和cleartimeout呼叫

eg:

cleartimeout(showtimes) //清除已設定的settimeout物件

clearinterval(showtimes) //清除已設定的setinterval物件

setTimeOut和setInterval的區別

區別 window.settimeout function time 設定乙個超時物件,只執行一次,無週期 window.setinterval function time 設定乙個超時物件,週期 互動時間 停止定時 window.cleartimeout 物件 清除已設定的settimeout物件...

setTimeout和setInterval的區別

使用方式 settimeout 表示式,延時時間 setinterval 表示式,互動時間 settimeout 方法是在等待指定時間後執行函式內容,且只執行一次傳入的表示式。click on the button above.an alert box will be displayed after...

setTimeout和setInterval踩得坑

如果又想設定定時關閉,又想設定輪詢,settimeout 呼叫關閉定時器的時候必須用函式包裹起來清除定時器操作。settimeout clear,60000 一分鐘之後關閉介面 定時檢視訂單狀態 function clear var ordertimer setinterval function 傳...