uni-app 中清除定时器实现方法详解
uni-app 中清除定时器
注意:
无论是获取短信码,还是在活动页轮询获取当前活动最新信息,都需要用到定时器。但是,定时器如果不及时合理地清除,会造成业务逻辑混乱甚至应用卡死的情况。
uni-app 中在某个页面中启动定时器后,一定要在页面关闭时将定时器清除掉。即在页面卸载(关闭)的生命周期函数里,清除定时器。
参考方法
定时器的方法
定时器一般有两个
1)setTimeout();//n毫秒后执行一次
2)setInterval();//每隔n秒执行一次
这两个方法都有个返回值,返回一个定时器id,可以定义一个变量接收
清除定时器方法
setTimeout()对应的是 clearTimeout(id);
setInterval()对应的是 clearInterval(id);
例如:
var time = setInterval("lunRight()",3000);//自动轮播 box.onmouseover=function(){ clearInterval(time); }//鼠标移入轮播图时取消自动轮播 var i = setTimeout(function(){ },1000); //setTimeout 1000ms后执行1次 clearTimeout(i); //清除Timeout的定时器,传入id(创建定时器时会返回一个id)
若没有加判断条件和将timer = null,会导致页面卸载的时候无法清空定时器。
onUnload:function(){ if(this.timer) { //在页面卸载时清除定时器有时会清除不了,可在页面跳转时清除 clearInterval(this.timer); this.timer = null; } }
优化:清除时机(在页面卸载时清除定时器有时会清除不了,可在页面跳转时清除)
clearMyTimer:function(){ if(timer) { console.log("check-清除定时器"); clearInterval(timer); timer = null; } }, logout:function(){ _self.sendRequest({ url : "user/logout", data : { mobile : _self.userPhone }, success:function(res){ _self.clearSession();//清空token _self.clearMyTimer();//清除定时器 uni.reLaunch({ url: "/pages/login2/login2" }) }, fail:function(e){}, complete:function(){} }) },
以上就是uni-app 中清除定时器的详细内容,更多关于uni-app 清除定时器的资料请关注脚本之家其它相关文章!
相关文章
解决javascript:window.close()在chrome,Firefox下失效的问题
本篇文章是对javascript:window.close()在chrome,Firefox下失效问题的解决方法进行了分析介绍。需要的朋友参考下2013-05-05使用json-server简单完成CRUD模拟后台数据的方法
这篇文章主要介绍了使用json-server简单完成CRUD模拟后台数据的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-07-07
最新评论