zoukankan      html  css  js  c++  java
  • 小程序开发之定时器的清楚

    在我看来本来很简单的东西,让我大吃一惊,有一个这样的需求,进入页面触发定时器,5s后离开页面,该页面中含有一个按钮,点击时也可以离开该页面。
    第一次实现思路:在onload中设置该定时器,时间小于等于0时,清除定时器,然后进行页面的跳转,点击按钮时,因为如果只进行跳转页面的操作,跳转页面后会因定时器还在执行,而有一个刷新。
    之后我想的是如何在点击的时候清除onload中的定时器,可是无论怎么操作都无法获取到其他生命周期函数中的方法。于是我将定时器干脆直接放入了data中,然后在页面卸载时清除data中的定时器,然后就完美实现了定时器的清楚。
     
    Page({
     
        /**
        * 页面的初始数据
        */
        data: {
            second: 5,
            time: "",
        },
        /**
        * 生命周期函数--监听页面加载
        */
        onLoad: function (options) {
        },
        time: function () {
            var _this = this;
            var s = _this.data.second;
            _this.setData({
                time: setInterval(() => {
                    s--;
                    if (s <= 0) {
                        clearInterval(_this.data.time);
                        wx.reLaunch({
                       url: '/pages/home/index',
                        })
                    } else {
                        this.setData({
                            second: s
                        })
                    }
                }, 1000)
            })
        },
        /**
        * 生命周期函数--监听页面初次渲染完成
        */
        onReady: function () {
            this.time();
        },
     
        /**
        * 生命周期函数--监听页面显示
        */
        onShow: function () {
        },
        
        /**
        * 生命周期函数--监听页面隐藏
        */
        onHide: function () {
        },
     
        /**
        * 生命周期函数--监听页面卸载
        */
        onUnload: function () {
            console.log("页面已经进行跳转")
            clearInterval(this.data.time);
        },
        /**
        * 用户点击右上角分享
        */
        onShareAppMessage: function () {
        },
        click: function(){
            wx.reLaunch({
                url: '/pages/home/index'
            })
            }
     })
    

      

  • 相关阅读:
    pycharm 社区版运行flask app相关配置
    飞冰框架学习记录
    从上一次到现在总结2
    从上一次到今天的总结1
    mybatis 遇到空串无法判断
    Shell 脚本入门
    数据库批量插入数据
    Navicat for mysql 实现数据库自动备份
    自定义校验注解
    C++ 提高编程
  • 原文地址:https://www.cnblogs.com/bgwhite/p/9335575.html
Copyright © 2011-2022 走看看