微信小程序学习Course 7 定时器功能

微信小程序学习Course 7 定时器功能

微信小程序中有一个定时器API函数,其提供了四个API接口

7.1、number setTimeout(function callback, number delay, any rest)

设定一个定时器,在定时到期以后执行注册的回调函数,值得注意的是本函数只执行一次!!!!

    setTimeout(this.DaoJiShi, 1000);//时间到达一秒执行一次DaoJiShi函数

  

如果我们想实现一个不停调用的函数,怎末实现呢?以下函数利用递归实现了一个倒计时功能,每隔一秒更新以下倒计时时间。

Onload:function(){
    this.DaoJiShi();//执行DaoJiShi函数
    setTimeout(this.DaoJiShi, 1000);//设置每隔一秒执行一次倒计时函数。
}
//以下为倒计时函数声明
//值得注意的是函数末尾又调用了设定倒计时函数,实现了一个递归。不停的调用。
DaoJiShi:function(){
    let newTime = new Date().getTime();
    let endTime = new Date(this.data.actEndTimeList).getTime();
    //console.log(endTime);
    //console.log(newTime);
    //console.log(endTime - newTime);
    if(endTime-newTime > 0){//如果未达到时间
      let Time = (endTime - newTime)/1000;//换算时间
      let day = parseInt(Time / 3600 / 24) ;
      let hou = parseInt((Time % (3600 * 24) /3600));
      let min = parseInt((Time %3600) / 60);
      let sec = parseInt((Time % 3600) % 60);
      this.setData({ DaysRemain: day, HourRemain: hou, MinuteRemain: min, SecondRemain: sec });
    }else{
      this.setData({ DaysRemain: ‘0‘, HourRemain: ‘0‘, MinuteRemain: ‘0‘, SecondRemain: ‘0‘ });
    }
    setTimeout(this.DaoJiShi, 1000);
  },

  

7.2、clearTimeout(number timeoutID)

可取消由 setTimeout() 方法设置的定时器。此函数是与setTimeout() 所对应的函数。二者搭配可以设置一个闹钟,定时器设定函数可以设置多长时间后响铃,如果想提前取消闹铃则可以适应clear函数取消定时器设置。

7.3、number setInterval(function callback, number delay, any rest)

设定一个定时器,按照指定的周期(以毫秒计)来执行注册的回调函数。注意此函数是按照一定周期去调用回调函数的,所以对于上述倒计时显示的任务,我们也可以采取此函数来实现,而且这样更加方便。

 onLoad(){
    this.DaoJiShi();
    //setTimeout(this.DaoJiShi, 1000);
    setInterval(this.DaoJiShi,1000);
  },

  DaoJiShi:function(){
    let newTime = new Date().getTime();
    let endTime = new Date(this.data.actEndTimeList).getTime();
    //console.log(endTime);
    //console.log(newTime);
    //console.log(endTime - newTime);
    if(endTime-newTime > 0){//如果未达到时间
      let Time = (endTime - newTime)/1000;//换算时间
      let day = parseInt(Time / 3600 / 24) ;
      let hou = parseInt((Time % (3600 * 24) /3600));
      let min = parseInt((Time %3600) / 60);
      let sec = parseInt((Time % 3600) % 60);
      this.setData({ DaysRemain: day, HourRemain: hou, MinuteRemain: min, SecondRemain: sec });
    }else{
      this.setData({ DaysRemain: ‘0‘, HourRemain: ‘0‘, MinuteRemain: ‘0‘, SecondRemain: ‘0‘ });
    }
    //setTimeout(this.DaoJiShi, 1000);
  },

  

7.4、clearInterval(number intervalID)

可取消由 setInterval() 方法设置的定时器。

利用定时器可以完成一个倒计时的功能,代码在上面已经展示各位可以尝试一下。

原文地址:https://www.cnblogs.com/flyingjun/p/9693829.html

时间: 2024-10-01 17:59:40

微信小程序学习Course 7 定时器功能的相关文章

微信小程序学习Course 9 云开发功能

微信小程序学习Course 9 云开发功能 微信小程序提供了一套免费的云开发功能API函数,虽然容量小,但足够我们个人用户使用以及学习了.下面简单介绍一下. 云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥. 目前提供三大基础能力支持: 云函数:在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码 数据库:一个既可在小程序前端操作,也能

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教

记录使用微信小程序的NFC和蓝牙功能读取15693芯片的开发历程

开发目标: (1) 对于Android手机,直接通过微信小程序调用手机的NFC功能,对15693协议的芯片进行读写操作: (2)对于苹果手机(及没有NFC模块的手机),通过微信小程序的蓝牙功能连接到蓝牙/NFC读写器,然后通过蓝牙发送指令操作读写器对15693协议的芯片进行读写操作. DAY #1 上午开了半天会,下午开始开发. 先开发简单的:直接通过Android手机的NFC模块读写芯片.开发思路如下: 1. 首先调用 wx.getHCEState(OBJECT), 判断设备是否支持NFC,如

微信小程序学习Course 2 事件

微信小程序学习Course 2 事件 事件是用来打通逻辑层与视图层的枢纽,我们一般在视图层(WXML文件)对某个控件绑定事件函数,在逻辑层(JS文件)编写事件函数代码. 2.1 事件类型 小程序中有两类事件 1.冒泡事件:当一个组件的事件被触发时,该事件会向父节点传递数据. 2.非冒泡事件:当一个组件上的事件被触发时,该事件不会向父节点传输数据. 2.2 事件绑定 事件的绑定比较简单,在视图层中增加类似如下代码,事件通常有两种开头,一种时bind以他开头代表普通模式:另一种是catch开头,他会

微信小程序学习Course 4-2 JS数组对象学习

微信小程序学习Course 3-2 JS数组对象学习 本节主要介绍JS中的数组. 3-2.1 数组的声明 数组声明的方式多种,如下例.一般我们可以先创建一个空数组,然后再填充. var names = [];//创建一个空数组 var names = ["sadad","asdsad"];//创建一个包含两个字符串的数组 var names = new Array(3);//创建一个包含三个元素的数组 3-2.2 数组的增添 数组有多种增添方式,一种是栈方式,另一种

微信小程序来了,整理微信小程序学习教程网站

第一,首先菜鸟教程  网址:http://www.runoob.com/ ps: 菜鸟教程(www.runoob.com)提供了最全的编程技术基础教程, 介绍了HTML.CSS.Javascript.Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识.菜鸟教程(www.runoob.com)提供了最全的编程技术基础教程, 介绍了HTML.CSS.Javascript.Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识. 同时本站

微信小程序学习

以下内容均转自微信平台,为学习所用. 本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果.这个小程序的首页将会显示欢迎语以及当前用户的微信头像,点击头像,可以在新开的页面中查看当前小程序的启动日志. 1. 获取微信小程序的 AppID 登录 https://mp.weixin.qq.com ,就可以在网站的"设置"-"开发者设置"中,查看到微信小程序的 AppID 了,注意不可直接使用服务号或订阅号的 AppID . 注意:如果要以非管理

微信小程序学习笔记--20170425--登录验证实现

初探微信小程序已经有几天的时间,跟随极客学院某某老师(只关注技术未关注老师,还请谅解).从微信小程序的框架结构及相关内容.下面以登录验证功能模块,展示近期学习的内容. 需求描述: 对于部分页面添加登录验证,用户未登录的情况下,进入页面,页面自动转向登录页面.登录验证成功后,回调到登录发起页面. 实现思路: 创建全局变量用于存储当前登录用户对象(userInfo).全局方法用于验证登录有效性(checkLoginInfo()).全局方法用于获取当前页面的全路径(getCurrentUrl()).

微信小程序学习笔记-2-常用组件介绍

微信小程序常用组件 组件的定义: 开发者可以利用微信团队提供的框架中的一系列基础组件进行快速的开发,什么是组件? 组件是视图层的基本组成单元. 组件自带一些功能与微信风格的样式. 一个组件通常包括开始标签和结束标签,属性用来修饰这个组件,内容在两个标签之间. 形式: <tagname property="value"> Content goes here </tagname> 例如: <view class="container">