公司有個業務場景需要實時的數據展示,所以當然要不斷的獲取后端傳來的最新的數據來渲染到頁面上。這里我們就可以使用輪詢,簡單來說就是在一個間隔事件內不斷的請求后端接口,讓他不斷的吐數據出來。
1.首先需要一個觸發事件
我的觸發事件是vue的生命周期mounted(),你可以用點擊事件代替,也可以用生命周期
2.有一個定時器
定時器我選擇setTimeout而不是setInterval,因為setInterval太不可控了,一旦頁面刷新就會觸發兩個setInterval,而setTimeout自帶清除,所以我們使用setTimeout可控一些
3.有一個被觸發事件
這個被觸發事件里寫具體的業務邏輯,和再一次啟動定時器的作用
具體代碼-Vue實現
export default{ mounted(){ this.getStatus(); // 輪詢事件mounted時觸發 }, ........ getStatus(){ let _this = this; this.axios.post("你的api",{}) .then(res) =>{ // .... 業務邏輯 setTimeout(function(){ _this.getStatus(); },200) } } }