1.前言

相信很多人都遇到过这样的问题,页面数据需要不断的刷新,也就是不断的发送ajax请求来更新数据,那么在vue中怎样做才比较好呢?这里介绍一下我踩的坑,以及解决方案

2.问题

settimeout用来调用请求数据,但是我遇到的问题就是,没有用合适的方式去关闭settimeout,出现了离开当前页面,请求还在不断的发送问题,这样给服务器带来了无必要的压力。附上之前的代码:

    self.deployTimeOutId = setTimeout(() => {self.getDeployList(false);}, 5000);

说明:这一段代码是嵌在getDeployList方法中的,离开当前页面的是时候,必须要去手动的把这个settimeout清除才行。一般这个写在destoryed()这个钩子里。

window.clearTimeout(this.deployTimeOutId);

虽然这样处理了,但在逻辑比较复杂的情况下,还是出现了没有关闭的情况,而且排查起来很痛苦。下面介绍一种针对Vue比较好的做法。

3.解决方案

    let self=this;if (self && !self._isDestroyed) {setTimeout(() => {if (self && !self._isDestroyed)self.getDeployList();}, 5000);}

_isDestroyed这个属性表示的是当前这个组件是否有被销毁,true表示当前的组件已经被销毁,通过上面这个判断,我们就不需要自己手动的去用ID来清除了,这个就相当于递归嘛,有了一个结束判断,避免了死循环咯~~

Vue之SetTimeout相关推荐

  1. js vue中setTimeout无法通过clearTimeout清除问题

    js vue中setTimeout无法通过clearTimeout清除问题 在异步清除中,利用vue 中data存放setTimeout的标识进行清除时,无法清除.则需要在函数前加上window.即可 ...

  2. html 取消settimeout,vue中setTimeout无法通过clearTimeout清除问题

    在异步清除中,利用vue 中data存放setTimeout的标识进行清除时,无法清除.则需要在函数前加上window.即可 如window.setTimeout与window.clearTimeou ...

  3. vue 定时器 setTimeout

    1.最简单的用法,500毫秒后执行,执行结束,定时器自动清除. setTimeout(function() {// 需要执行的代码 }, 500); // 定时时间 2.循环执行定时器 data() ...

  4. setTimeout在vue中的正确使用

    笔者最近因为公司需求开发使用vue和jquery开发抓娃娃H5极简小游戏,使用到setTimeout函数.遇到了1个坑: 在vue的某个方法(点击后执行) setTimeout(this.end(), ...

  5. Vue 中的 v-cloak 作用及用法-vue页面加载时会闪烁

    用法: 这个指令保持在元素上直到关联实例结束编译.和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕 ...

  6. Vue 中的 v-cloak 作用及用法

    v-cloak 的作用和用法 用法: 这个指令保持在元素上直到关联实例结束编译.和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Must ...

  7. vue antd a-table组件设置表头鼠标移入悬浮显示(自定义的表头)

    1.看之前,请先异步另一篇文章 antdv table组件封装成全局组件以及携带自定义表头展示 2.具体需求,鼠标移入显示文本 3.参考大佬的文章:a-table组件设置表头鼠标移入悬浮显示 4.在公 ...

  8. setTimeout函数this的指向

    一.第一种解释: var obj = {name: 'name',foo: function () {console.log(this); // Object {name: "name&qu ...

  9. VUE中clearTimeout失效问题

    研究了很久以为是自己代码的问题结果是VUE封装了setTimeout 在VUE中setTimeout返回一个对象,对象含有**_id**属性,将_id作为参数执行clearTimeout即可生效. / ...

最新文章

  1. 2021年逆天Java调优方案出来了!直接省掉一半成本,吹爆!!!
  2. Post请求,向服务器发送用户信息
  3. python中定义类
  4. Hankson的趣味题 解题记录
  5. 循序渐进linux——基础知识、服务器搭建、系统管理、性能调优、集群应用_第四讲,Proxmox部署与应用...
  6. HNOI2013 游走
  7. 信息学奥赛一本通(1218:取石子游戏)
  8. pandas 转换为文本类型_分享5个高效的pandas函数!
  9. 大数据分析平台由哪些部分构成
  10. 【优化求解】基于matlab遗传算法结合粒子群算法求解单目标优化问题【含Matlab源码 1659期】
  11. ubuntu下使用锐捷客户端链接校园网
  12. 防范蠕虫式勒索软件病毒***的安全预警通告
  13. java混淆器_Java 混淆器
  14. CV界的明星人物们和他们的主页地址
  15. 纪一次笔试之行—燃烧的远征
  16. CHD-5.3.6集群上sqoop安装
  17. 必应 Bing 新特性之最新文章, Wolfram|Alpha 整合, 天气搜索等已推出
  18. python的小程序分析_Python小程序,红楼梦关键词分析
  19. 在c语言中卖水果的程序,C语言写的简易水果管理系统
  20. Docker真正的入门

热门文章

  1. 【自动驾驶】基于面部Fatigue检测的技术报告
  2. php nette,php – Nette Framework – 自定义属性宏
  3. ERROR: Exception when publishing, exception message
  4. 整车电源状态 K15 KL30 KL31
  5. 搭建SecureCRT
  6. 织梦php模板安装教程,织梦CMS模板详细图文安装教程
  7. 卷积神经网络的一般步骤,卷积神经网络采用卷积
  8. qq视频压缩的方法你知道吗
  9. (SQL语句)查询条件模糊匹配若干字段
  10. ubuntu修改IP地址和网关的方法