成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

setTimeout和setInterval的區(qū)別

zhigoo / 1639人閱讀

摘要:和都返回定時(shí)器對(duì)象標(biāo)識(shí)符,用于和調(diào)用清除已設(shè)置的對(duì)象清除已設(shè)置的對(duì)象

雖然網(wǎng)上有很多兩者區(qū)別的文章,但是經(jīng)常搞混了,好記性不如爛筆頭,記錄一下。
語(yǔ)法:

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

它們都有兩個(gè)參數(shù),一個(gè)是將要執(zhí)行的代碼字符串,還有一個(gè)是以毫秒為單位的時(shí)間間隔,當(dāng)過(guò)了那個(gè)時(shí)間段之后就將執(zhí)行那段代碼。
這兩個(gè)函數(shù)的區(qū)別就在于,setInterval在執(zhí)行完一次代碼之后,經(jīng)過(guò)了那個(gè)固定的時(shí)間間隔,它還會(huì)自動(dòng)重復(fù)執(zhí)行代碼,而setTimeout只執(zhí)行一次那段代碼。
每5秒alert一次時(shí)間

var showTimes=setInterval("showTime()", 5000);
function showTime()
{
    var today = new Date();
    alert("The time is: " + today.toString());
}

setTimeout也可以實(shí)現(xiàn),代碼如下:

var showTimes=null;
showTime();
function showTime()
{
    var today = new Date();
    alert("The time is: " + today.toString());
    showTimes=setTimeout("showTime()", 5000);
}

這樣寫(xiě)是不是看起來(lái)沒(méi)有什么區(qū)別,但是setTimeout方法不會(huì)每隔5秒鐘就執(zhí)行一次showTime函數(shù),它是在每次調(diào)用setTimeout后過(guò)5秒鐘再去執(zhí)行showTime函數(shù)。這意味著如果showTime函數(shù)的主體部分需要1秒鐘執(zhí)行完,那么整個(gè)函數(shù)則要每6秒鐘才執(zhí)行一次。而setInterval卻沒(méi)有被自己所調(diào)用的函數(shù)所束縛,它只是簡(jiǎn)單地每隔一定時(shí)間就重復(fù)執(zhí)行一次那個(gè)函數(shù)。

所以這兩個(gè)函數(shù)需根據(jù)不同的情景去使用,如果需要在每隔一個(gè)固定的時(shí)間間隔后就精確地執(zhí)行某動(dòng)作,那么最好使用setInterval,而如果不想由于連續(xù)調(diào)用產(chǎn)生互相干擾的問(wèn)題,尤其是每次函數(shù)的調(diào)用需要繁重的計(jì)算以及很長(zhǎng)的處理時(shí)間,那么最好使用setTimeout。

setInterval和setTimeout都返回定時(shí)器對(duì)象標(biāo)識(shí)符,用于clearInterval和clearTimeout調(diào)用
eg:

clearTimeout(showTimes) //清除已設(shè)置的setTimeout對(duì)象
clearInterval(showTimes) //清除已設(shè)置的setInterval對(duì)象

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/91220.html

相關(guān)文章

  • setTimeoutsetInterval區(qū)別nodejs中差異

    摘要:關(guān)于定時(shí)器的源碼在文件中,進(jìn)入就關(guān)于定時(shí)器的一些設(shè)計(jì)解釋?zhuān)驗(yàn)槭亲龇?wù)端代碼,在內(nèi)部等大部分事件都會(huì)創(chuàng)建一個(gè)定時(shí)器,任何時(shí)間都可能存在大量的定時(shí)器任務(wù),所以設(shè)計(jì)一個(gè)高效的定時(shí)器是很有必要的。 博客文章地址 setTimeout與setInterval setTimeout 和 setInterval 是我們?cè)?javaScript 中經(jīng)常用到的定時(shí)器,setTimeout 方法用于...

    meislzhua 評(píng)論0 收藏0
  • setTimeoutsetInterval區(qū)別

    摘要:和函數(shù)的同與異同都接受兩個(gè)參數(shù),一個(gè)是將要執(zhí)行的代碼塊,一個(gè)是以毫秒為單位的時(shí)間間隔,當(dāng)過(guò)了設(shè)定的時(shí)間間隔就執(zhí)行代碼塊部分。 setTimeout()和setInterval()函數(shù)的同與異:同:都接受兩個(gè)參數(shù),一個(gè)是將要執(zhí)行的代碼塊,一個(gè)是以毫秒為單位的時(shí)間間隔,當(dāng)過(guò)了設(shè)定的時(shí)間間隔就執(zhí)行代碼塊部分。異:setTimeout(codeblock, millisec)函數(shù)只執(zhí)行一次代碼...

    Scorpion 評(píng)論0 收藏0
  • setTimeoutsetInterval使用

    摘要:不過(guò)兩者各有各的應(yīng)用場(chǎng)景。方法實(shí)際上,和的語(yǔ)法相同。這意味著如果函數(shù)的主體部分需要秒鐘執(zhí)行完,那么整個(gè)函數(shù)則要每秒鐘才執(zhí)行一次。不過(guò)還是有辦法可以終止和函數(shù)的執(zhí)行。 var intervalProcess = setInterval(alert(GOAL!), 3000); 這個(gè)變量命名可以在實(shí)際代碼中采用 這兩個(gè)方法都可以用來(lái)實(shí)現(xiàn)在一個(gè)固定時(shí)間段之后去執(zhí)行JavaScript。不過(guò)...

    noONE 評(píng)論0 收藏0
  • javascript 定時(shí)器工作原理

    摘要:說(shuō)到中的定時(shí)器,我們肯定會(huì)想到和這兩個(gè)函數(shù)。第一個(gè)回調(diào)一執(zhí)行,又開(kāi)啟了第二個(gè),這個(gè)定時(shí)器也是期望延時(shí)之后能夠執(zhí)行它的回調(diào)函數(shù)。可以用下面的圖來(lái)概括總結(jié)上面對(duì)定時(shí)器執(zhí)行原理進(jìn)行了簡(jiǎn)要的分析,希望能夠幫助我們更深入的理解。 說(shuō)到 javascript 中的定時(shí)器,我們肯定會(huì)想到 setTimeout() 和 setInterval() 這兩個(gè)函數(shù)。本文將從 事件循環(huán)(Event Loop)...

    godlong_X 評(píng)論0 收藏0
  • 關(guān)于 setTimeoutsetInterval,你需要知道一切

    摘要:這里是結(jié)論,將是更驚艷的那一個(gè)。瀏覽器隔一段時(shí)間像服務(wù)器發(fā)送一個(gè)請(qǐng)求,詢問(wèn)這里有沒(méi)有需要更新的消息。在響應(yīng)回來(lái)時(shí),才會(huì)繼續(xù)發(fā)出第二個(gè)請(qǐng)求。但是,顯然的,這對(duì)我們要做的事來(lái)說(shuō)并不算是什么問(wèn)題。 我們都知道的是setTimout是用來(lái)延遲一個(gè)簡(jiǎn)單的動(dòng)作的,然而,setInterval的目的是用來(lái)重復(fù)執(zhí)行某個(gè)動(dòng)作的。 然后,以上只是一半的事實(shí)。因?yàn)槿绻粋€(gè)函數(shù)需要在一個(gè)間隔時(shí)間內(nèi)重復(fù)的執(zhí)行,...

    rottengeek 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<