uni-app 中清除定时器实现方法详解

 更新时间:2023年07月10日 11:21:23   作者:瑟闻风倾  
这篇文章主要为大家介绍了uni-app 中清除定时器实现方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

uni-app 中清除定时器

JS之延时器和定时器

注意

无论是获取短信码,还是在活动页轮询获取当前活动最新信息,都需要用到定时器。但是,定时器如果不及时合理地清除,会造成业务逻辑混乱甚至应用卡死的情况。

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 清除定时器的资料请关注脚本之家其它相关文章!

相关文章

  • django js 实现表格动态标序号的实例代码

    django js 实现表格动态标序号的实例代码

    本文通过实例代码给大家介绍了django js 实现表格动态标序号 ,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • 详解Typescript 内置的模块导入兼容方式

    详解Typescript 内置的模块导入兼容方式

    这篇文章主要介绍了详解Typescript 内置的模块导入兼容方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • js 获取网络图片的高度和宽度的实现方法(变通了下)

    js 获取网络图片的高度和宽度的实现方法(变通了下)

    简单地说就是把图片放入一个自动伸缩的DIV中,然后获取DIV的宽和高!这个不错的变通,大家可以参考下。
    2009-10-10
  • JavaScript之IE的fireEvent方法详细解析

    JavaScript之IE的fireEvent方法详细解析

    刚开始我以为是会跟平时使用onclick()一样,没想到最近在写javascript入门ppt的时候发现了,原来自己太自以为是了!看来还有很多javascript的细节没有掌握好啊
    2013-11-11
  • javascript实现的简单计时器

    javascript实现的简单计时器

    计时器提供了一 个可以将代码片段异步延时执行的能力,javascript生来是单线程的(在一定时间范围内仅一部分js代码能运行),计时器为我们提供了一种避开这种 限制的方法,从而开辟了另一条执行代码的蹊径。
    2015-07-07
  • js 原生判断内容区域是否滚动到底部的实例代码

    js 原生判断内容区域是否滚动到底部的实例代码

    下面笔者就为大家分享一篇js 原生判断内容区域是否滚动到底部的实例代码,具有很好的参考价值,希望对大家有所帮助
    2017-11-11
  • 解决layui调用自定义方法提示未定义的问题

    解决layui调用自定义方法提示未定义的问题

    今天小编就为大家分享一篇解决layui调用自定义方法提示未定义的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • js实现扫雷源代码

    js实现扫雷源代码

    这篇文章主要为大家详细介绍了js实现扫雷源代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • fckeditor 获取文本框值的实现代码

    fckeditor 获取文本框值的实现代码

    获取文本框值的实现代码
    2009-02-02
  • 老生常谈的跨域处理

    老生常谈的跨域处理

    本文主要介绍了常用的几种跨域处理方法、跨域的原理解析及实现方法。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01

最新评论