目录

1 在data中定义

2 在methods中定义

3 开始轮询

4 终止轮询

方法一: destroyed()

方法二:beforeRouteLeave(to, from, next) 推荐

所有代码

轮询:polling
1 在data中定义

data() {
return {
polling: ''
}
},

2 在methods中定义

methods: {
getDateLoop(timeout = 15000) { // timeout可以写死,也可以动态
console.log('查询'); // 执行语句
this.polling = setInterval(() => {
console.log('查询'); // 轮询中,执行语句
}, timeout)
},
},

3 开始轮询

created() {
this.getDateLoop(); // 开始轮询
},

在当前页面不停打印,说明轮询成功

4 终止轮询
方法一: destroyed()
这个方法,反复跳转后会失效(有点奇怪),所以转用方法二

失效原因:开发的网页是SPA-单页面应用,每次页面跳转,都是由路由机制管理,刷新的只有网页内容。(因为这个销毁过程失灵时不灵,所以博主猜测:)页面跳转的时候不一定会销毁这个组件所以这个方法失灵时不灵。

destroyed() {
clearInterval(this.polling) // 结束轮询
},

跳转页面后,停止打印,说明轮询停止

方法二:beforeRouteLeave(to, from, next) 推荐

beforeRouteLeave(to, from, next){ // 路由跳转前,清除轮询
next();
if (this.polling) {
clearInterval(this.polling);
this.polling = null;
}
},

所有代码

data() {
return {
polling: ''
}
},
methods: {
getDateLoop(timeout = 15000) { // timeout可以写死,也可以动态
console.log('查询'); // 执行语句
this.polling = setInterval(() => {
console.log('查询'); // 轮询中,执行语句
}, timeout)
},
},
created() {
this.getDateLoop(); // 开始轮询
},
// destroyed() {
// clearInterval(this.polling) // 结束轮询
// },
beforeRouteLeave(to, from, next){ // 路由跳转前,清除轮询
next();
if (this.polling) {
clearInterval(this.polling);
this.polling = null;
}
},

  

结尾

本文主要是向介绍了用的很少的钩子函数(关键时候是真好使啊)

VUE 轮询、轮询终止 beforeRouteLeave的更多相关文章

  1. vue-awesome-swipe 基于vue使用的轮播组件 使用(改)

    npm install vue-awesome-swiper --save  //基于vue使用的轮播组件 <template> <swiper :options="swi ...

  2. 什么是 A 轮融资?有 B轮 C轮么?

    融资的顺序是A轮 B轮 C轮这之前还有天使轮,种子轮,首轮在这之后还有vc/pe,ipo等等,只是一些不同时段的融资 Chen Shu 知乎用户.千叶光.angle LI 等人赞同 就是公司的初卖.再 ...

  3. vue.js层叠轮播

    最近写公司项目有涉及到轮播banner,一般的ui框架无法满足产品需求:所以自己写了一个层叠式轮播组件:现在分享给大家: 主要技术栈是vue.js ;javascript;jquery:确定实现思路因 ...

  4. vue手写轮播

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 天使轮 A轮 B轮 上市...等名词解释

    看到一篇漫画解释的很形象:

  6. 轮询、长轮询、websock

    引入 Web端即时通讯技术:即时通讯技术简单的说就是实现这样一种功能:服务器端可以即时地将数据的更新或变化反应到客户端,例如消息即时推送等功能都是通过这种技术实现的.但是在Web中,由于浏览器的限制, ...

  7. windows 下,用CreateWaitableTimer SetWaitableTimer 创建定时器(用轮询的办法保持高精度)

    windows 下,用CreateWaitableTimer SetWaitableTimer 创建定时器可以有 100 纳秒也就是 1/10 微秒, 1/10000 毫秒的精度. 呵呵. SetWa ...

  8. 轮询、长轮询与Web Socket的前端实现

    Web Socket 应用场景:实现即时通讯:如股票交易行情分析.聊天室.在线游戏等,替代轮询和长轮询 轮询 轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由 ...

  9. Nginx负载均衡的4种方式 :轮询-Round Robin 、Ip地址-ip_hash、最少连接-least_conn、加权-weight=n

    这里对负载均衡概念和nginx负载均衡实现方式做一个总结: 先说一下负载均衡的概念: Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法. 我们知道单台服务 ...

  10. 客户端与服务器持续同步解析(轮询,comet,WebSocket)

    在B/S模型的Web应用中,客户端常常需要保持和服务器的持续更新.这种对及时性要求比较高的应用比如:股票价格的查询,实时的商品价格,自动更新的twitter timeline以及基于浏览器的聊天系统( ...

随机推荐

  1. 安装zabbix-agent2之ansible-playbook

    zabbix被监控端安装zabbix-agent2之ansible-playbook --- - name: install agent hosts: all vars: server_host: & ...

  2. windows中 mysql 免安装版安装

    基本安装 绝对路径中避免出现中文,推荐首选英文为命名条件! 以管理员身份打开命令行,并转到mysql的bin目录下 安装mysql服务 mysqld --install 若出现以下错误,需将缺失的文件 ...

  3. 网络协议之:redis protocol 详解

    目录 简介 redis的高级用法 Redis中的pipline Redis中的Pub/Sub RESP protocol Simple Strings Bulk Strings RESP Intege ...

  4. LoadRunner11脚本关联+运行负载+分析结果

    一.脚本创建关联和插入检查点 脚本录制完成后,首先需运行脚本回放,验证是否可回放成功,然后找出各事务请求中的关联点! 如本例子中,录制的场景为:打开综合窗口收件-->查询事项-->窗口登记 ...

  5. 【题解】CF1714F Build a Tree and That Is It

    题面传送门 解决思路 题目中虽然说是无根树,但我们可以钦定这棵树的根为节点 \(1\),方便构造,这是不 影响结果的. 以下记给定的三段长度为 \(a,b,c\). 先考虑无解的情况. 首先,给出的三 ...

  6. srcddd

    目录 application assembler UserReq.go UserRsp.go dto MessageResult.go UserDTO.go services UserService. ...

  7. Go语言核心36讲47

    你好,我是郝林,今天我们继续分享使用os包中的API. 我们在上一篇文章中.从"os.File类型都实现了哪些io包中的接口"这一问题出发,介绍了一系列的相关内容.今天我们继续围绕 ...

  8. 随笔——写windows服务的时候如何调试 c# .net

    流程 1.更改项目 应用程序--输出类型--windows应用程序 改为 控制台应用程序 2.Program启动类中添加调用代码 3.服务类里面添加启动方法去启动OnStart和 Console.Re ...

  9. phpexcel 上传

    <?php require_once(ROOTPATH . "inc/PHPExcel/PHPExcel.class.php");//PHPExcel//获取数据 $objP ...

  10. 学习ASP.NET Core Blazor编程系列十四——修改

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...