JavaScript 定時器 SetTimeout之定時重新整理視窗和關閉視窗(代碼超簡單)_javascript技巧

來源:互聯網
上載者:User

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

// 每隔五秒定時重新整理當前視窗setTimeout("self.location.reload();",5000);//js 定時關閉視窗(ie和FF中測試過)//6秒後自動關閉當前視窗setTimeout("window.opener=null;window.close()",6000);

下面給大家介紹下javascript定時器使用

使用定時器實現JavaScript的延期執行或重複執行 window對象提供了兩個方法來實現定時器的效果,分別是

window.setTimeout()和window.setInterval。其中前者可以使一段代碼在指定時間後運行;而後者則可以使一段代碼每過指定時間就運行一次。 它們的原型如下: window.setTimeout(expression,milliseconds); window.setInterval(expression,milliseconds); 其中expression可以是字串,也可以是函數名。是字串的時候可以帶參數,函數名不能帶參數,如果帶上參數就直接執行函數了,不會延時。

 function hello (){ console.log('I am dada'); //alert('I am ' + name);//setTimeout(arguments.callee,2000); } setTimeout(hello,5000);//5秒後執行 setTimeout('hello()',3000);//3秒後執行setTimeout(hello(),8000);//立刻執行 

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

第二種情況是字串,可執行檔js代碼,可以帶參數,但是效能上比函數名差

第三種是調用函數,直接執行

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

function _hello(_name){ return function(){ hello2(_name); } } setTimeout(_hello(name),7000);//立刻執行

一、setTimeout

setTimeout(function(){//要執行的代碼 },200);

指隔200ms後,定時器代碼被添加到隊列中,等待JavaScript進程空閑後,代碼才執行

二、setInterval

1、上面代碼是指每隔200ms就建立一個執行代碼的定時器
2、當使用setInterval時,僅當(在隊列中)沒有該定時器的任何其他代碼執行個體時,才將定時器代碼添加到隊列中,引用JavaScript進階程式設計第二版書中語句(即:當前一個定時器代碼執行時,緊跟後面的第一個定時器代碼將添加到隊列中,等待執行,再後面的定時器代碼不會添加到隊列中)

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

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

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

setTimeout(function(){//要執行的代碼 setTimeout(arguments.callee,2000); },2000);setInterval(function(){//要執行的代碼 },200);

本文就給大家介紹這麼多,希望對大家有所協助,同時感謝大家對雲棲社區網站的支援。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.