亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

setTimeout和setInterval的區(qū)別

zhigoo / 1670人閱讀

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

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

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

它們都有兩個(gè)參數(shù),一個(gè)是將要執(zhí)行的代碼字符串,還有一個(gè)是以毫秒為單位的時(shí)間間隔,當(dāng)過了那個(gè)時(shí)間段之后就將執(zhí)行那段代碼。
這兩個(gè)函數(shù)的區(qū)別就在于,setInterval在執(zhí)行完一次代碼之后,經(jīng)過了那個(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);
}

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

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

相關(guān)文章

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

    摘要:關(guān)于定時(shí)器的源碼在文件中,進(jìn)入就關(guān)于定時(shí)器的一些設(shè)計(jì)解釋,因?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)過了設(shè)定的時(shí)間間隔就執(zhí)行代碼塊部分。 setTimeout()和setInterval()函數(shù)的同與異:同:都接受兩個(gè)參數(shù),一個(gè)是將要執(zhí)行的代碼塊,一個(gè)是以毫秒為單位的時(shí)間間隔,當(dāng)過了設(shè)定的時(shí)間間隔就執(zhí)行代碼塊部分。異:setTimeout(codeblock, millisec)函數(shù)只執(zhí)行一次代碼...

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

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

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

    摘要:說到中的定時(shí)器,我們肯定會(huì)想到和這兩個(gè)函數(shù)。第一個(gè)回調(diào)一執(zhí)行,又開啟了第二個(gè),這個(gè)定時(shí)器也是期望延時(shí)之后能夠執(zhí)行它的回調(diào)函數(shù)。可以用下面的圖來概括總結(jié)上面對(duì)定時(shí)器執(zhí)行原理進(jìn)行了簡要的分析,希望能夠幫助我們更深入的理解。 說到 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)求,詢問這里有沒有需要更新的消息。在響應(yīng)回來時(shí),才會(huì)繼續(xù)發(fā)出第二個(gè)請(qǐng)求。但是,顯然的,這對(duì)我們要做的事來說并不算是什么問題。 我們都知道的是setTimout是用來延遲一個(gè)簡單的動(dòng)作的,然而,setInterval的目的是用來重復(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元查看
<