首頁 > web前端 > js教程 > JavaScript 定時器 SetTimeout定時刷新視窗與關閉視窗(程式碼超簡單)_javascript技巧

JavaScript 定時器 SetTimeout定時刷新視窗與關閉視窗(程式碼超簡單)_javascript技巧

PHP中文网
發布: 2016-05-16 15:13:15
原創
1730 人瀏覽過

JavaScript 定時器 SetTimeout之定時刷新視窗與關閉視窗(程式碼超簡單)_javascript技巧

廢話不多說了,直接給大家貼程式碼了。

// 每隔五秒定时刷新当前窗口
setTimeout("self.location.reload();",5000);
//js 定时关闭窗口(ie和FF中测试过)
//6秒后自动关闭当前窗口
setTimeout("window.opener=null;window.close()",6000);
登入後複製

下面請為大家介紹下javascript定時器使用<><器實作JavaScript的延期執行或重複執行window物件提供了兩個方法來實現計時器的效果,分別是

window.setTimeout()和window.setInterval。

其中前者可以使一段程式碼在指定時間後運作;而後者則可以讓一段程式碼每過指定時間就執行一次。 它們的原型如下:

其中expression可以是字串,也可以是函式名稱。是字串的時候可以帶參數,函數名不能帶參數,如果帶上參數就直接執行函數了,不會延遲。
window.setTimeout(expression,milliseconds); window.setInterval(expression,milliseconds);
登入後複製


 function hello (){ 
console.log(&#39;I am dada&#39;); //alert(&#39;I am &#39; + name);
//setTimeout(arguments.callee,2000); 
} setTimeout(hello,5000);//5秒后执行 setTimeout(&#39;hello()&#39;,3000);//3秒后执行
setTimeout(hello(),8000);//立刻执行
登入後複製

第一種情況是函數名,但是帶不了參數

第二種情況是字串,可執行的js程式碼,可以帶參數,但是性能上比函數名差

第三種是呼叫函數,直接執行

所以如果想要穿參數,但是又不想通過字符字串的形式調用,可以自己來寫一個方法:


function _hello(_name){ 
return function(){ 
hello2(_name); 
} 
} 
setTimeout(_hello(name),7000);//立刻执行
登入後複製

一、setTimeout一、setTimeout
< >

setTimeout(function(){
//要执行的代码 
},200);
登入後複製


指隔200ms後,定時器程式碼加入佇列,等待JavaScript程序空閒後,程式碼才執行

二、setInterval


1、上面程式碼是指每隔200ms就建立一個執行程式碼的定時器
2、上面程式碼是指每隔200ms就建立一個執行程式碼的定時器

2、當使用setInterval時,僅當(在佇列中)沒有該定時器的任何其他程式碼實例時,才將定時器程式碼加入佇列,引用JavaScript高階程式設計第二版書中語句(即:目前一個定時器代碼執行時,緊接後面的第一個定時器代碼將添加到隊列中,等待執行,再後面的定時器代碼不會添加到隊列中)


用setInterval來執行反覆的行為的時候會遇到一個問題:


當定時器代碼執行時間(假如需要600ms才執行完)超過指定間隔(這裡是200ms),那麼某些定時器代碼就會被跳過(即後面的定時器代碼不會被添加到隊列中),前一個定時器代碼執行完畢後,隊列中的定時器代碼立刻執行,各定時器之間的代碼執行沒有間隔。這時,需要使用鍊式setTimeout。

這樣做的好處是:前一個定時器要執行的代碼執行完且等待200ms後,才創建一個新的定時器,並把定時器代碼添加到隊列中執行即:不會出現定時器代碼被跳過的情況;定時器之間的代碼執行可以有間隔(根據自己設定)。

setTimeout(function(){
//要执行的代码 
setTimeout(arguments.callee,2000); 
},2000);
setInterval(function(){
//要执行的代码 
},200);
登入後複製

以上就是JavaScript 定時器SetTimeout之定時刷新視窗和關閉視窗(程式碼超簡單)_javascript技巧的內容,更多相關內容請關注PHP中文網(www.php.cn)!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板