摘要:和都返回定時器對象標識符,用于和調用清除已設置的對象清除已設置的對象
雖然網上有很多兩者區別的文章,但是經常搞混了,好記性不如爛筆頭,記錄一下。
語法:
setTimeout(code,millisec); setInterval(code,millisec[,"lang"])
它們都有兩個參數,一個是將要執行的代碼字符串,還有一個是以毫秒為單位的時間間隔,當過了那個時間段之后就將執行那段代碼。
這兩個函數的區別就在于,setInterval在執行完一次代碼之后,經過了那個固定的時間間隔,它還會自動重復執行代碼,而setTimeout只執行一次那段代碼。
每5秒alert一次時間
var showTimes=setInterval("showTime()", 5000); function showTime() { var today = new Date(); alert("The time is: " + today.toString()); }
setTimeout也可以實現,代碼如下:
var showTimes=null; showTime(); function showTime() { var today = new Date(); alert("The time is: " + today.toString()); showTimes=setTimeout("showTime()", 5000); }
這樣寫是不是看起來沒有什么區別,但是setTimeout方法不會每隔5秒鐘就執行一次showTime函數,它是在每次調用setTimeout后過5秒鐘再去執行showTime函數。這意味著如果showTime函數的主體部分需要1秒鐘執行完,那么整個函數則要每6秒鐘才執行一次。而setInterval卻沒有被自己所調用的函數所束縛,它只是簡單地每隔一定時間就重復執行一次那個函數。
所以這兩個函數需根據不同的情景去使用,如果需要在每隔一個固定的時間間隔后就精確地執行某動作,那么最好使用setInterval,而如果不想由于連續調用產生互相干擾的問題,尤其是每次函數的調用需要繁重的計算以及很長的處理時間,那么最好使用setTimeout。
setInterval和setTimeout都返回定時器對象標識符,用于clearInterval和clearTimeout調用
eg:
clearTimeout(showTimes) //清除已設置的setTimeout對象 clearInterval(showTimes) //清除已設置的setInterval對象
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/91220.html
摘要:關于定時器的源碼在文件中,進入就關于定時器的一些設計解釋,因為是做服務端代碼,在內部等大部分事件都會創建一個定時器,任何時間都可能存在大量的定時器任務,所以設計一個高效的定時器是很有必要的。 博客文章地址 setTimeout與setInterval setTimeout 和 setInterval 是我們在 javaScript 中經常用到的定時器,setTimeout 方法用于...
摘要:和函數的同與異同都接受兩個參數,一個是將要執行的代碼塊,一個是以毫秒為單位的時間間隔,當過了設定的時間間隔就執行代碼塊部分。 setTimeout()和setInterval()函數的同與異:同:都接受兩個參數,一個是將要執行的代碼塊,一個是以毫秒為單位的時間間隔,當過了設定的時間間隔就執行代碼塊部分。異:setTimeout(codeblock, millisec)函數只執行一次代碼...
摘要:不過兩者各有各的應用場景。方法實際上,和的語法相同。這意味著如果函數的主體部分需要秒鐘執行完,那么整個函數則要每秒鐘才執行一次。不過還是有辦法可以終止和函數的執行。 var intervalProcess = setInterval(alert(GOAL!), 3000); 這個變量命名可以在實際代碼中采用 這兩個方法都可以用來實現在一個固定時間段之后去執行JavaScript。不過...
摘要:說到中的定時器,我們肯定會想到和這兩個函數。第一個回調一執行,又開啟了第二個,這個定時器也是期望延時之后能夠執行它的回調函數。可以用下面的圖來概括總結上面對定時器執行原理進行了簡要的分析,希望能夠幫助我們更深入的理解。 說到 javascript 中的定時器,我們肯定會想到 setTimeout() 和 setInterval() 這兩個函數。本文將從 事件循環(Event Loop)...
摘要:這里是結論,將是更驚艷的那一個。瀏覽器隔一段時間像服務器發送一個請求,詢問這里有沒有需要更新的消息。在響應回來時,才會繼續發出第二個請求。但是,顯然的,這對我們要做的事來說并不算是什么問題。 我們都知道的是setTimout是用來延遲一個簡單的動作的,然而,setInterval的目的是用來重復執行某個動作的。 然后,以上只是一半的事實。因為如果一個函數需要在一個間隔時間內重復的執行,...
閱讀 1100·2021-10-12 10:11
閱讀 884·2019-08-30 15:53
閱讀 2296·2019-08-30 14:15
閱讀 2970·2019-08-30 14:09
閱讀 1206·2019-08-29 17:24
閱讀 980·2019-08-26 18:27
閱讀 1287·2019-08-26 11:57
閱讀 2157·2019-08-23 18:23