vue项目如何作到每30秒刷新1次接口?

欢迎关注前端小讴的github,阅读更多原创技术文章

在vue.js项目中,常常须要对数据实时更新——每隔xx秒须要刷新一次接口——即须要用到定时器相关原理前端

咱们先看一看2种经常使用定时器vue

setInterval(function(){}, milliseconds)——会不停的调用函数git

setTimeout(function(){}, milliseconds)——只执行函数一次github

乍看之下,setInterval会符合咱们的业务需求,然而也须要注意一些坑,单纯的使用setInterval会致使页面卡死!其缘由与JS引擎线程有关(有兴趣的童鞋可自行研究相关资料),用通俗话说就是setInterval不会清除定时器队列,每重复执行1次都会致使定时器叠加,最终卡死你的网页。函数

可是setTimeout是自带清除定时器的,所以正确解决方法以下线程

window.setInterval(() => {
    setTimeout(fun, 0)
}, 30000)

注意:setInterval必须放在外层(在内层会致使页面卡顿直到崩溃),内层配合setTimeout,便可无限次调用咱们的接口啦!code

相关文章
相关标签/搜索