单纯使用setInterval会使页面卡死,setTimeout自带清除缓存,组合使用实现轮询可解决浏览器崩溃
window.setInterval(() => {
setTimeout(fun, 0)
}, 30000)
完整代码
<template>
<div></div>
</template>
<script>
export default {
data() {
return {
num: 0,
timer: null,
};
},
destroyed() {
//离开页面是销毁
clearInterval(this.timer);
this.timer = null;
},
created() {
// 实现轮询
this.timer = window.setInterval(() => {
setTimeout(this.getProjectList(), 0);
}, 3000);
},
methods: {
stop() {
clearInterval(this.timer);
this.timer = null;
},
// 请求是否有新消息
getProjectList() {
console.log("请求" + this.num++ + "次");
if(this.num==8){
this.stop()
}
}
}
};
</script>
<style scoped>
</style>
网友评论