JavaScript 定時(shí)器 SetTimeout之定時(shí)刷新窗口和關(guān)閉窗口(代碼超簡(jiǎn)單)
廢話不多說了,直接給大家貼代碼了。
// 每隔五秒定時(shí)刷新當(dāng)前窗口
setTimeout("self.location.reload();",5000);
//js 定時(shí)關(guān)閉窗口(ie和FF中測(cè)試過)
//6秒后自動(dòng)關(guān)閉當(dāng)前窗口
setTimeout("window.opener=null;window.close()",6000);
下面給大家介紹下javascript定時(shí)器使用
使用定時(shí)器實(shí)現(xiàn)JavaScript的延期執(zhí)行或重復(fù)執(zhí)行 window對(duì)象提供了兩個(gè)方法來實(shí)現(xiàn)定時(shí)器的效果,分別是
window.setTimeout()和window.setInterval。其中前者可以使一段代碼在指定時(shí)間后運(yùn)行;而后者則可以使一段代碼每過指定時(shí)間就運(yùn)行一次。 它們的原型如下: window.setTimeout(expression,milliseconds); window.setInterval(expression,milliseconds); 其中expression可以是字符串,也可以是函數(shù)名。是字符串的時(shí)候可以帶參數(shù),函數(shù)名不能帶參數(shù),如果帶上參數(shù)就直接執(zhí)行函數(shù)了,不會(huì)延時(shí)。
function hello (){
console.log('I am dada'); //alert('I am ' + name);
//setTimeout(arguments.callee,2000);
} setTimeout(hello,5000);//5秒后執(zhí)行 setTimeout('hello()',3000);//3秒后執(zhí)行
setTimeout(hello(),8000);//立刻執(zhí)行
第一種情況是函數(shù)名,但是帶不了參數(shù)
第二種情況是字符串,可執(zhí)行的js代碼,可以帶參數(shù),但是性能上比函數(shù)名差
第三種是調(diào)用函數(shù),直接執(zhí)行
所以如果想要穿參數(shù),但是又不想通過字符串的形式調(diào)用,可以自己來寫一個(gè)方法:
function _hello(_name){
return function(){
hello2(_name);
}
}
setTimeout(_hello(name),7000);//立刻執(zhí)行
一、setTimeout
setTimeout(function(){
//要執(zhí)行的代碼
},200);
指隔200ms后,定時(shí)器代碼被添加到隊(duì)列中,等待JavaScript進(jìn)程空閑后,代碼才執(zhí)行
二、setInterval
1、上面代碼是指每隔200ms就創(chuàng)建一個(gè)執(zhí)行代碼的定時(shí)器
2、當(dāng)使用setInterval時(shí),僅當(dāng)(在隊(duì)列中)沒有該定時(shí)器的任何其他代碼實(shí)例時(shí),才將定時(shí)器代碼添加到隊(duì)列中,引用JavaScript高級(jí)程序設(shè)計(jì)第二版書中語句(即:當(dāng)前一個(gè)定時(shí)器代碼執(zhí)行時(shí),緊跟后面的第一個(gè)定時(shí)器代碼將添加到隊(duì)列中,等待執(zhí)行,再后面的定時(shí)器代碼不會(huì)添加到隊(duì)列中)
用setInterval來執(zhí)行反復(fù)的行為的時(shí)候會(huì)遇到一個(gè)問題:
當(dāng)定時(shí)器代碼執(zhí)行時(shí)間(假如需要600ms才執(zhí)行完)超過指定間隔(這里是200ms),那么某些定時(shí)器代碼就會(huì)被跳過(即后面的定時(shí)器代碼不會(huì)被添加到隊(duì)列中),前一個(gè)定時(shí)器代碼執(zhí)行完畢后,隊(duì)列中的定時(shí)器代碼立刻執(zhí)行,各定時(shí)器之間的代碼執(zhí)行沒有間隔。這時(shí),需要使用鏈?zhǔn)絪etTimeout。
這樣做的好處是:前一個(gè)定時(shí)器要執(zhí)行的代碼執(zhí)行完且等待200ms后,才創(chuàng)建一個(gè)新的定時(shí)器,并把定時(shí)器代碼添加到隊(duì)列中執(zhí)行即:不會(huì)出現(xiàn)定時(shí)器代碼被跳過的情況;定時(shí)器之間的代碼執(zhí)行可以有間隔(根據(jù)自己設(shè)置)。
setTimeout(function(){
//要執(zhí)行的代碼
setTimeout(arguments.callee,2000);
},2000);
setInterval(function(){
//要執(zhí)行的代碼
},200);
本文就給大家介紹這么多,希望對(duì)大家有所幫助,同時(shí)感謝大家對(duì)腳本之家網(wǎng)站的支持。
- js定時(shí)器的使用(實(shí)例講解)
- JavaScript定時(shí)器詳解及實(shí)例
- JavaScript暫停和繼續(xù)定時(shí)器的實(shí)現(xiàn)方法
- javascript中SetInterval與setTimeout的定時(shí)器用法
- 獲取焦點(diǎn)時(shí),利用js定時(shí)器設(shè)定時(shí)間執(zhí)行動(dòng)作
- js定時(shí)器實(shí)現(xiàn)倒計(jì)時(shí)效果
- JavaScript定時(shí)器和優(yōu)化的取消定時(shí)器方法
- Javascript 定時(shí)器調(diào)用傳遞參數(shù)的方法
- JavaScript定時(shí)器實(shí)現(xiàn)的原理分析
- js 定時(shí)器setTimeout無法調(diào)用局部變量的解決辦法
- JavaScript定時(shí)器常見用法實(shí)例分析
相關(guān)文章
如何使用pace.js美化你的網(wǎng)站加載進(jìn)度條詳解
Pace.js是一個(gè)非常有意思的js插件,可以自動(dòng)的監(jiān)聽頁面的加載數(shù)據(jù),并且能夠定制加載條,下面這篇文章主要給大家介紹了關(guān)于使用pace.js如何美化你的網(wǎng)站加載進(jìn)度條的相關(guān)資料,需要的朋友可以參考下2022-02-02
JS結(jié)合bootstrap實(shí)現(xiàn)基本的增刪改查功能
這篇文章主要介紹了JS結(jié)合bootstrap實(shí)現(xiàn)基本的增刪改查功能,需要的朋友可以參考下2016-07-07
紅黑樹的插入詳解及Javascript實(shí)現(xiàn)方法示例
這篇文章主要給大家介紹了關(guān)于紅黑樹的插入的相關(guān)資料,以及Javascript實(shí)現(xiàn)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起看看吧。2018-03-03
JavaScript實(shí)現(xiàn)簡(jiǎn)單進(jìn)度條效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單進(jìn)度條效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
javascript event在FF和IE的兼容傳參心得(絕對(duì)好用)
event在IE和FF不兼,下面為大家分享的是javascript event在FF和IE的兼容傳參心得,需要的朋友可以參考下2014-07-07
js報(bào)錯(cuò):Maximum?call?stack?size?exceeded的解決方法
這篇文章主要給大家介紹了關(guān)于js報(bào)錯(cuò)Maximum?call?stack?size?exceeded的解決方法,文中通過實(shí)例代碼將解決的方法介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02

