JavaScript SetInterval與setTimeout使用方法詳解
更新時(shí)間:2013年11月15日 09:58:22 作者:
本文講解了JavaScript SetInterval與setTimeout的區(qū)別,并用代碼示例演示了使用方法
setTimeout和setInterval的語法相同。它們都有兩個(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í)行一次那段代碼。
區(qū)別:
window.setTimeout("function",time);//設(shè)置一個(gè)超時(shí)對(duì)象,只執(zhí)行一次,無周期
window.setInterval("function",time);//設(shè)置一個(gè)超時(shí)對(duì)象,周期='交互時(shí)間'
停止定時(shí):
window.clearTimeout(對(duì)象) 清除已設(shè)置的setTimeout對(duì)象
window.clearInterval(對(duì)象) 清除已設(shè)置的setInterval對(duì)象
PerRefresh();
function PerRefresh() {
var today = new Date();
alert("The time is: " + today.toString());
setTimeout("showTime()", 5000);
}
一旦調(diào)用了這個(gè)函數(shù)PerReflesh,那么就會(huì)每隔5秒鐘就顯示一次時(shí)間
setInterval("PerRefresh()", 5000);
function PerRefresh() {
var today = new Date();
alert("The time is: " + today.toString());
}
而setInterval卻沒有被自己所調(diào)用的函數(shù)所束縛,它只是簡(jiǎn)單地每隔一定時(shí)間就重復(fù)執(zhí)行一次那個(gè)函數(shù)。
只要調(diào)用了setInterval("PerRefresh()", 5000)此函數(shù),那么每隔5秒鐘就會(huì)執(zhí)行PerRefresh這個(gè)函數(shù)。
如果要求在每隔一個(gè)固定的時(shí)間間隔后就精確地執(zhí)行某動(dòng)作,那么最好使用setInterval,而如果不想由于連續(xù)調(diào)用產(chǎn)生互相干擾的問題,尤其是每次函數(shù)的調(diào)用需要繁重的計(jì)算以及很長的處理時(shí)間,那么最好使用setTimeout。
setInterval 不斷地執(zhí)行指定代碼直到調(diào)用clearInterval清除定時(shí)器對(duì)象
setTimeout 執(zhí)行一次指定代碼,使用clearTimeout清除定時(shí)器對(duì)象
setInterval和setTimeout都返回定時(shí)器對(duì)象標(biāo)識(shí)符,用于clearInterval和clearTimeout調(diào)用
不過這兩個(gè)函數(shù)還是有區(qū)別的,setInterval在執(zhí)行完一次代碼之后,經(jīng)過了那個(gè)固定的時(shí)間間隔,它還會(huì)自動(dòng)重復(fù)執(zhí)行代碼,而setTimeout只執(zhí)行一次那段代碼。
區(qū)別:
window.setTimeout("function",time);//設(shè)置一個(gè)超時(shí)對(duì)象,只執(zhí)行一次,無周期
window.setInterval("function",time);//設(shè)置一個(gè)超時(shí)對(duì)象,周期='交互時(shí)間'
停止定時(shí):
window.clearTimeout(對(duì)象) 清除已設(shè)置的setTimeout對(duì)象
window.clearInterval(對(duì)象) 清除已設(shè)置的setInterval對(duì)象
復(fù)制代碼 代碼如下:
PerRefresh();
function PerRefresh() {
var today = new Date();
alert("The time is: " + today.toString());
setTimeout("showTime()", 5000);
}
一旦調(diào)用了這個(gè)函數(shù)PerReflesh,那么就會(huì)每隔5秒鐘就顯示一次時(shí)間
復(fù)制代碼 代碼如下:
setInterval("PerRefresh()", 5000);
function PerRefresh() {
var today = new Date();
alert("The time is: " + today.toString());
}
而setInterval卻沒有被自己所調(diào)用的函數(shù)所束縛,它只是簡(jiǎn)單地每隔一定時(shí)間就重復(fù)執(zhí)行一次那個(gè)函數(shù)。
只要調(diào)用了setInterval("PerRefresh()", 5000)此函數(shù),那么每隔5秒鐘就會(huì)執(zhí)行PerRefresh這個(gè)函數(shù)。
如果要求在每隔一個(gè)固定的時(shí)間間隔后就精確地執(zhí)行某動(dòng)作,那么最好使用setInterval,而如果不想由于連續(xù)調(diào)用產(chǎn)生互相干擾的問題,尤其是每次函數(shù)的調(diào)用需要繁重的計(jì)算以及很長的處理時(shí)間,那么最好使用setTimeout。
setInterval 不斷地執(zhí)行指定代碼直到調(diào)用clearInterval清除定時(shí)器對(duì)象
setTimeout 執(zhí)行一次指定代碼,使用clearTimeout清除定時(shí)器對(duì)象
setInterval和setTimeout都返回定時(shí)器對(duì)象標(biāo)識(shí)符,用于clearInterval和clearTimeout調(diào)用
相關(guān)文章
JavaScript中的Repaint和Reflow用法詳解
這篇文章主要介紹了JavaScript中的Repaint和Reflow用法詳解,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-07-07
script標(biāo)簽屬性用type還是language
本文介紹了javascript腳本中標(biāo)簽屬性type與language的區(qū)別分析,有需要的小伙伴可以參考下2015-01-01
JavaScript中的setUTCDate()方法使用詳解
這篇文章主要介紹了JavaScript中的setUTCDate()方法使用詳解,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
Javascript實(shí)例教程(19) 使用HoTMetal(5)
Javascript實(shí)例教程(19) 使用HoTMetal(5)...2006-12-12
JavaScript入門教程(5) js Screen屏幕對(duì)象
這是基本JavaScript的屏幕對(duì)象2009-01-01
淺談checkbox的一些操作(實(shí)戰(zhàn)經(jīng)驗(yàn))
checkbox看起來很簡(jiǎn)單,有時(shí)很頭疼,有什么難的,下面就為大家介紹下checkbox的一些操作,不了解的朋友不要錯(cuò)過2013-11-11
讓ie運(yùn)行js時(shí)提示允許阻止內(nèi)容運(yùn)行的解決方法
這個(gè)問題一般是因?yàn)榫W(wǎng)頁中使用了一些js代碼,而ie的默認(rèn)安全級(jí)別過高導(dǎo)致運(yùn)行js時(shí)需要經(jīng)過準(zhǔn)許才可以。下面是IE的設(shè)置方法。2010-10-10

