Vue - 和后端保持长时间通信之轮询


公司有个业务场景需要实时的数据展示,所以当然要不断的获取后端传来的最新的数据来渲染到页面上。这里我们就可以使用轮询,简单来说就是在一个间隔事件内不断的请求后端接口,让他不断的吐数据出来。

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)
          }
      }
}    

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM