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