javascript
JavaScript定时调用函数(SetInterval与setTimeout)
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ì)象
?一旦調(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ì)算以及很長(zhǎng)的處理時(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)用
?
總結(jié)
以上是生活随笔為你收集整理的JavaScript定时调用函数(SetInterval与setTimeout)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 优化杭州某著名电子商务网站高并发千万级大
- 下一篇: Mysql双向同步复制