Js定时器

关于Js定时器,就我目前所用的,有两种实现方式:

1、window.setInterval()

语法结构:

    let intervalId = window.setInterval(codeStr,interval)

语法参数解析:

    intervalId ,是该方法的返回值,作为该方法的唯一表示

    codeStr,必需,将要被循环调用的回调函数。

    interval,必需,周期的时间跨度,以毫秒计算。

使用案例:

    

var time = 1000;
var zsjInterval = setInterval(function () {
          time = time - 1;
          if (time == 0 || time < 0) {
            that.detail();
          } else {
            var day = parseInt(time / 60 / 60 / 24);
            var hour = parseInt(time / 60 / 60 % 24);
            if (hour.toString().length == 1) {
              hour = "0" + hour;
            }
            var minute = parseInt(time / 60 % 60);
            if (minute.toString().length == 1) {
              minute = "0" + minute;
            }
            var seconds = parseInt(time % 60);
            if (seconds.toString().length == 1) {
              seconds = "0" + seconds;
            }
            $(".zongtime .number").html("");
            $(".zongtime .number").html(hour + ":" + minute + ":" + seconds);
          }
        }, 1000)
clearInterval(zsjInterval);//该方法用来终止定时器的

 

注意:同一个页面用到多个定时器的时候,要通过clearInterval()方法处理,以免出现多个定时器混乱的情况。

2、window.setTimeout()

语法结构:

    let intervalId = window.setInterval(codeStr,interval)

语法参数解析:

    intervalId ,是该方法的返回值,作为该方法的唯一表示

    codeStr,必需,将要被循环调用的回调函数。

    interval,必需,周期的时间跨度,以毫秒计算。

使用案例:

var time = 1000;
zsjTimer(time){
var that = this zsjInterval = setTimeout(function () { time = time - 1 if (time == 0 || time < 0) { that.detail() } else { var day = parseInt(time / 60 / 60 / 24); var hour = parseInt(time / 60 / 60 % 24); if (hour.toString().length == 1) { hour = "0" + hour } var minute = parseInt(time / 60 % 60); if (minute.toString().length == 1) { minute = "0" + minute } var seconds = parseInt(time % 60); if (seconds.toString().length == 1) { seconds = "0" + seconds } $(".zongtime .number").html("") $(".zongtime .number").html(hour + ":" + minute + ":" + seconds) that.zsjTimer(time) } }, 1000) }
clearTimeout(zsjInterval);

 说明:使用 window.setTimeout() 方法做倒数定时器,是通过递归方法实现的;

特别说明:凡是属于window对象的方法都可以直接调用,无需使用window调用

posted @ 2019-07-18 15:33  热爱于丫丫  阅读(298)  评论(0编辑  收藏  举报