项目中我们经常需要实现轮询-每隔几秒请求一次接口实现数据更新
1:一般都会使用setInterval,但要注意单纯使用它会导致页面卡死
方法1:
new Vue({
el: '#app',
data: {},
created: function() {
var that = this;
// setInterval不会清除定时器队列,每重复执行1次都会导致定时器叠加 \
window.setInterval(() => {
// setTimeout是自带清除定时器
setTimeout(function() {
var url = aUrl + "xxx";
axios.post(url, {}).then(function(res) {
var data = res.data;
that.ind_title = data.data;
})
.catch(function(err) {
console.log("=err====" + err);
})
}, 600)
}, 5000)
}
})
方法2:
// vue能够在push,shift,unshift等方法时响应
let that= this
let refresh= setInterval(()=>{
axios.get(url,(res)=>{
// TODO 返回结果的判断
...
that.list.push(res)
})
},5000)