vue轮询方法

1.注意问题:
一般轮询都会使用setInterval,但是单独使用它会使页面卡死。
2.下面是3秒钟轮询一次的代码

export default {
   data() {
         return {
            
        }
    },
    mounted() {
        this.getList();
        this.timer = window.setInterval(() => {
            setTimeout(() => {
                this.getList()
            },0)
        },3000)
    },
    methods: {
        getList() {
            // 发送接口
        }
    },
    destroyed() {
        window.clearInterval(this.timer)
    }
}

3.使用说明:
setInterval不会清除定时器队列,每重复执行1次都会导致定时器叠加,会出现网页卡死现象。但是setTimeout是自带清除定时器的,两者结合使用将避免页面卡死。

页面初始化,待开始轮询后,离开页面,通过生命周期destroyed钩子函数,销毁定时任务。

4.代码第二中写法
意思是将mounted的东西方成方法,这样就可以减少mouted的内代码。

export default {
   data() {
         return {
            
        }
    },
    mounted() {
        this.getlunxunData()
    },
    methods: {
		getlunxunData () {
        	this.timer = window.setInterval(() => {
            	setTimeout(() => {
              	  this.getList()
          		  },0)
                },3000)
  	     },
        getList() {
            // 发送接口
        }
    },
    destroyed() {
        window.clearInterval(this.timer)
    }
}

你可能感兴趣的:(vue.js,javascript,前端)