zoukankan      html  css  js  c++  java
  • [javascript]中央定时器控制

    [学习链接]https://www.jianshu.com/p/600804b1486b

    为何需要中央定时器

    在使用定时器时,可能出现大量的定时器需要管理的情况。(比如,处理动画)
    同时创建大量的定时器,将会在浏览器中增加垃圾回收任务的可能性。
    在多个定时器中使用中央定时器,可以带来很大的威力和灵活性。

    中央定时器控制特点

    • 每个页面在同一时间只需要运行一个定时器
    • 可以根据需要暂停和恢复定时器
    • 删除回调函数的过程变得很简单

    实现代码:

    var timers = {  //声明了一个定时器控制对象
        timerID: 0, //记录状态
        timers: [], //记录状态
        add: function(fn) { //创建添加处理程序的函数
            this.timers.push(fn);  
        },
        start: function() {//创建开启定时器的函数
            if(this.timerID) {
                return;
            }
            (function runNext() {
                if(timers.timers.length > 0) {
                    for(var i = 0; i < timers.timers.length; i++) {
                        if(timers.timers[i]() === false) {
                            timers.timers.splice(i, 1);
                            I--;
                        }
                    }
                    timers.timerID = setTimeout(runNext, 0);
                }
            })();
        },
        stop: function() {//创建停止定时器的函数
            clearTimeout(this.timerID);
            this.timerID = 0;
        }
    }
    
    
    坚持,坚持,坚持。再坚持坚持!
  • 相关阅读:
    log4j
    hashContext
    sql语句
    css样式
    作业七:(二)疑问解答
    作业七:(1)翻译
    结对编程作业
    软件优缺点评价(补交)
    C#程序分析
    VS2013安装及测试练习
  • 原文地址:https://www.cnblogs.com/danker/p/12660544.html
Copyright © 2011-2022 走看看