您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“vue項目使用定時器每隔幾秒運行一次怎么實現”,內容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“vue項目使用定時器每隔幾秒運行一次怎么實現”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
data() { return { timer:null, //定時器名稱 } }, created() { this.setTime(); }, beforeDestroy(){ clearInterval(this.timer); // 清除定時器 this.timer = null; }, methods: { setTime(){ //每隔一分鐘運行一次保存方法 this.timer = setInterval(()=>{ this.saveList(); },60000) }, saveList(){ } }
上面這樣寫已經實現功能,關閉頁面不會繼續(xù)執(zhí)行。長時間運行頁面也沒有卡死。
有人說,setInterval()里面嵌套setTimeout()
setinterval不會清除定時器隊列,每重復執(zhí)行1次都會導致定時器疊加,最終卡死你的網頁。 其原因與JS引擎線程有關(需深入研究JS引擎線程) ,但是setTimeout是自帶清除定時器的。 我沒有出現頁面卡死的情況所以就沒加setTimeout。
setInterval(() => { setTimeout(() => { this.queryChartTime() }, 0) }, 10000)
一個是循環(huán)執(zhí)行setInterval,另一個是定時執(zhí)行setTimeout
1:setInterval 循環(huán)執(zhí)行, 每隔一段時間執(zhí)行一次, 多次執(zhí)行。
2:setTimeout 到時間后執(zhí)行, 只執(zhí)行一次。
在beforeDestroy()生命周期內清除定時器
定時器需要在頁面銷毀的時候清除掉,不然會一直存在!!
定時執(zhí)行 setTimeout 是設置一個時間,等待時間到達的時候只執(zhí)行一次,但是執(zhí)行完以后定時器還在,只是不再運行;
語法:
setTimeout(code, milliseconds, param1, param2, ...) setTimeout(function, milliseconds, param1, param2, ...) code/function 必需。要調用一個代碼串,也可以是一個函數。 milliseconds 可選。執(zhí)行或調用 code/function 需要等待的時間,以毫秒計。默認為 0。 param1, param2, ... 可選。 傳給執(zhí)行函數的其他參數(IE9 及其更早版本不支持該參數)。 返回值: 返回一個 ID(數字),可以將這個ID傳遞給 clearTimeout() 來取消執(zhí)行。 eg: 開始時候創(chuàng)建一個定時器 setTimeout,只在2秒后執(zhí)行一次方法。 let timer = setTimeout(() => { //需要定時執(zhí)行的代碼 console.debug("Hello World"); }, 2000)
讀到這里,這篇“vue項目使用定時器每隔幾秒運行一次怎么實現”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。