JS設定定時器和清除定時器

2021-09-29 07:35:25 字數 1623 閱讀 9676

在做專案中難免會碰到需要實時重新整理,動畫依次出現等等需求,這時候就需要定時器登上我們的**舞台了,所以今天我們就先來了解一下js定時器的設定和清除吧。

window物件提供了兩個方法來實現定時器的效果,分別是window.settimeout()和window.setinterval。其中前者可以使一段**在指定時間後執行;而後者則可以使一段**每過指定時間就執行一次。它們的原型如下:

window.settimeout(code,millisec);

window.setinterval(code,millisec);

其中,code可以是用引號括起來的一段**,也可以是乙個函式名,到了指定的時間,系統便會自動呼叫該函式,當使用函式名作為呼叫控制代碼時,不能帶有任何引數;而使用字串時,則可以在其中寫入要傳遞的引數。兩個方法中的第二個引數是millisec,表示延時或者重複執行的毫秒數。

具體寫法如下

settimeout (test,1000);           //1秒後執行

字串,可以執行的**

settimeout ('test()',1000);       //1秒後執行

settimeout (function(){},1000);   //1秒後執行

注:setinterval的用法與settimeout一樣

settimeout ('test(引數)',1000);      //1秒後執行

注:如果不小心寫成了settimeout (test(引數),1000);test方法就會立即執行哦。

執行結果:

二、清除定時器

由於定時器在呼叫時,都會返回乙個整形的數字,該數字代表定時器的序號,即第多少個定時器,所以定時器的清除要借助於這個返回的數字。

定時器清除的方法:cleartimeout(obj)和clearinterval(obj)。

要清除定時器,就必須在用定時器的時候,定義乙個變數來記錄定時器的返回值。如下:

//settimeout 1000ms後執行1次

var test1 = settimeout(

function(),

1000);

//setinterval 每隔1000ms執行一次

var test2 = setinterval(

function(),

1000)

//清除timeout的定時器,傳入變數名(建立timeout定時器時定義的變數名)

cleartimeout(test1);

//清除interval的定時器,傳入變數名(建立interval定時器時定義的變數名)

clearinterval(test2);

注:有時候在寫的時候,還會習慣將清空的定時器的變數置空,這樣寫既可以釋放記憶體,也可以便於後邊**的判斷。

在vue元件中設定定時器和清除定時器

由於專案中難免會碰到需要實時重新整理,無論是獲取簡訊碼,還是在支付完成後輪詢獲取當前最新支付狀態,這時就需要用到定時器。但是,定時器如果不及時合理地清除,會造成業務邏輯混亂甚至應用卡死的情況,這個時就需要清除定時器。某個頁面中啟動定時器後,一定要在頁面關閉時將定時器清除掉。即在頁面解除安裝 關閉 的...

JS迴圈定時器和炸彈定時器

setinterval 迴圈定時器 規定時間間隔執行一次,像鬧鐘一樣,不關閉繼續執行 setinterval code,millisec,lang code 必需。要呼叫的函式或要執行的 串 millisec 必需。lang 可選。cleartimeout settime 清除定時器 60s倒計時特...

Mysql 檢視定時器 開啟定時器 設定定時器時間

1.檢視是否開啟evevt與開啟evevt。1.1 mysql evevt功能預設是關閉的,可以使用下面的語句來看evevt的狀態,如果是off或者0,表示是關閉的。show variables like sche 1.2 開啟evevt功能 setglobal event scheduler 1 ...