JavaScript SetInterval與setTimeout使用方法詳解
更新時間:2013年11月15日 09:58:22 作者:
本文講解了JavaScript SetInterval與setTimeout的區(qū)別,并用代碼示例演示了使用方法
setTimeout和setInterval的語法相同。它們都有兩個參數(shù),一個是將要執(zhí)行的代碼字符串,還有一個是以毫秒為單位的時間間隔,當(dāng)過了那個時間段之后就將執(zhí)行那段代碼。
不過這兩個函數(shù)還是有區(qū)別的,setInterval在執(zhí)行完一次代碼之后,經(jīng)過了那個固定的時間間隔,它還會自動重復(fù)執(zhí)行代碼,而setTimeout只執(zhí)行一次那段代碼。
區(qū)別:
window.setTimeout("function",time);//設(shè)置一個超時對象,只執(zhí)行一次,無周期
window.setInterval("function",time);//設(shè)置一個超時對象,周期='交互時間'
停止定時:
window.clearTimeout(對象) 清除已設(shè)置的setTimeout對象
window.clearInterval(對象) 清除已設(shè)置的setInterval對象
PerRefresh();
function PerRefresh() {
var today = new Date();
alert("The time is: " + today.toString());
setTimeout("showTime()", 5000);
}
一旦調(diào)用了這個函數(shù)PerReflesh,那么就會每隔5秒鐘就顯示一次時間
setInterval("PerRefresh()", 5000);
function PerRefresh() {
var today = new Date();
alert("The time is: " + today.toString());
}
而setInterval卻沒有被自己所調(diào)用的函數(shù)所束縛,它只是簡單地每隔一定時間就重復(fù)執(zhí)行一次那個函數(shù)。
只要調(diào)用了setInterval("PerRefresh()", 5000)此函數(shù),那么每隔5秒鐘就會執(zhí)行PerRefresh這個函數(shù)。
如果要求在每隔一個固定的時間間隔后就精確地執(zhí)行某動作,那么最好使用setInterval,而如果不想由于連續(xù)調(diào)用產(chǎn)生互相干擾的問題,尤其是每次函數(shù)的調(diào)用需要繁重的計算以及很長的處理時間,那么最好使用setTimeout。
setInterval 不斷地執(zhí)行指定代碼直到調(diào)用clearInterval清除定時器對象
setTimeout 執(zhí)行一次指定代碼,使用clearTimeout清除定時器對象
setInterval和setTimeout都返回定時器對象標(biāo)識符,用于clearInterval和clearTimeout調(diào)用
不過這兩個函數(shù)還是有區(qū)別的,setInterval在執(zhí)行完一次代碼之后,經(jīng)過了那個固定的時間間隔,它還會自動重復(fù)執(zhí)行代碼,而setTimeout只執(zhí)行一次那段代碼。
區(qū)別:
window.setTimeout("function",time);//設(shè)置一個超時對象,只執(zhí)行一次,無周期
window.setInterval("function",time);//設(shè)置一個超時對象,周期='交互時間'
停止定時:
window.clearTimeout(對象) 清除已設(shè)置的setTimeout對象
window.clearInterval(對象) 清除已設(shè)置的setInterval對象
復(fù)制代碼 代碼如下:
PerRefresh();
function PerRefresh() {
var today = new Date();
alert("The time is: " + today.toString());
setTimeout("showTime()", 5000);
}
一旦調(diào)用了這個函數(shù)PerReflesh,那么就會每隔5秒鐘就顯示一次時間
復(fù)制代碼 代碼如下:
setInterval("PerRefresh()", 5000);
function PerRefresh() {
var today = new Date();
alert("The time is: " + today.toString());
}
而setInterval卻沒有被自己所調(diào)用的函數(shù)所束縛,它只是簡單地每隔一定時間就重復(fù)執(zhí)行一次那個函數(shù)。
只要調(diào)用了setInterval("PerRefresh()", 5000)此函數(shù),那么每隔5秒鐘就會執(zhí)行PerRefresh這個函數(shù)。
如果要求在每隔一個固定的時間間隔后就精確地執(zhí)行某動作,那么最好使用setInterval,而如果不想由于連續(xù)調(diào)用產(chǎn)生互相干擾的問題,尤其是每次函數(shù)的調(diào)用需要繁重的計算以及很長的處理時間,那么最好使用setTimeout。
setInterval 不斷地執(zhí)行指定代碼直到調(diào)用clearInterval清除定時器對象
setTimeout 執(zhí)行一次指定代碼,使用clearTimeout清除定時器對象
setInterval和setTimeout都返回定時器對象標(biāo)識符,用于clearInterval和clearTimeout調(diào)用
相關(guān)文章
Js從頭學(xué)起(基本數(shù)據(jù)類型和引用類型的參數(shù)傳遞詳細(xì)分析)
Js中所有函數(shù)的參數(shù)傳遞都是按值傳遞的,也就是把函數(shù)外面的值復(fù)制給函數(shù)內(nèi)部的參數(shù),就和把值從一個變量復(fù)制到另一個變量一樣。下面舉幾個特別的例子2012-02-02深入學(xué)習(xí)JavaScript中的原型prototype
這篇文章主要介紹了深入學(xué)習(xí)JavaScript中的原型prototype,是JavaScript入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-08-08javascript學(xué)習(xí)筆記(九) js對象 設(shè)計模式
javascript學(xué)習(xí)筆記之js對象 設(shè)計模式介紹,需要的朋友可以參考下2012-06-06溫故知新——JavaScript中的字符串連接問題最全總結(jié)(推薦)
這篇文章主要介紹了JS中的字符串連接問題,ECMAScript 中最常見的一個問題是字符串連接的性能。在調(diào)用 join() 方法時才會發(fā)生連接操作,具體操作步驟大家可查看下文的詳細(xì)講解,感興趣的小伙伴們可以參考一下。2017-08-08