迎接关注前端小讴的github,浏览更多原创技术文章
在vue.js项目中,常常须要对数据及时更新——每隔xx秒须要革新一次接口——即须要用到定时器相干道理
我们先看一看2种经常运用定时器:
setInterval(function(){}, milliseconds)——会不断的挪用函数
setTimeout(function(){}, milliseconds)——只实行函数一次
乍看之下,setInterval会相符我们的营业需求,然则也须要注重一些坑,纯真的运用setInterval会致使页面卡死!其缘由与JS引擎线程有关(有兴致的童鞋可自行研讨相干材料),用浅显话说就是setInterval不会消灭定时器行列,每反复实行1次都邑致使定时器叠加,终究卡死你的网页。
然则setTimeout是自带消灭定时器的,因而准确解决方法以下:
window.setInterval(() => {
setTimeout(fun, 0)
}, 30000)
注重:setInterval必需放在外层(在内层会致使页面卡顿直到崩溃),内层合营setTimeout,即可无限次挪用我们的接口啦!