91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue.js如何讓網頁定時刷新

發布時間:2020-12-10 12:31:04 來源:億速云 閱讀:731 作者:小新 欄目:編程語言

小編給大家分享一下vue.js如何讓網頁定時刷新,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

vue.js讓網頁定時刷新的方法:1、執行函數【setTimeout(function(){}, milliseconds)】;2、在執行定時器前先執行一次獲取接口數據的操作函數。

vue.js讓網頁定時刷新的方法:

js有兩種定時器

  • setInterval(function(){}, milliseconds)——會不停的調用函數

  • setTimeout(function(){}, milliseconds)——只執行函數一次

乍看之下,setInterval會符合我們的業務需求,然而也需要注意一些坑,單純的使用setInterval會導致頁面卡死!其原因與JS引擎線程有關, 用通俗話說就是setInterval不會清除定時器隊列,每重復執行1次都會導致定時器疊加,最終卡死你的網頁。

但是setTimeout是自帶清除定時器的,因此正確解決方法如下:

data(){
  return {
       timer:null, //定時器名稱
    }
},
mounted(){
   this.queryInfo();
   this.timer = setInterval(() => {
       setTimeout(this.queryInfo, 0)
   }, 1000*60)
},
methods: {
   queryInfo(){
    //do something
   },
},
beforeDestroy(){
   clearInterval(this.timer);        
   this.timer = null;
}

說明: 1.在執行定時器前先執行一次獲取接口數據的操作函數, 否則接口會1分鐘后才調用

2.為了避免退出當前頁面后,在其他頁面也繼續調用接口,退出前需要清除定時器.

清除定時器優化方案

上面的清除定時器方案有兩點不好:

  • 它需要在這個組件實例中保存這個 timer,如果可以的話最好只有生命周期鉤子可以訪問到它。這并不算嚴重的問題,但是它可以被視為雜物。

  • 我們的建立代碼獨立于我們的清理代碼,這使得我們比較難于程序化的清理我們建立的所有東西

優化方案:

通過$once這個事件偵聽器器在定義完定時器之后的位置來清除定時器.

const timer = setInterval(() =>{                    
    // 某些定時器操作                
}, 500);            
// 通過$once來監聽定時器,在beforeDestroy鉤子可以被清除。
this.$once('hook:beforeDestroy', () => {            
    clearInterval(timer);                                    
})

看完了這篇文章,相信你對vue.js如何讓網頁定時刷新有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中阳县| 孙吴县| 宁强县| 两当县| 肥西县| 清远市| 江阴市| 吉林省| 台东市| 石渠县| 磐石市| 永登县| 九龙县| 清水河县| 北辰区| 曲靖市| 胶州市| 江川县| 长丰县| 九龙坡区| 专栏| 闽清县| 霍邱县| 扶沟县| 雷州市| 雅江县| 云浮市| 临邑县| 临颍县| 中山市| 广安市| 漳浦县| 永清县| 历史| 平乐县| 盐边县| 牡丹江市| 衡水市| 巴中市| 梅河口市| 张家口市|