如何管理页面定时器

952 阅读1分钟

「如何管理页面定时器」

  • setTimeout/setInterval返回一个定时器id
  • 定时器id是递增的 并且 > 0
  • 定义一个全局变量,每次新建定时器都存到pageTimer里
  • 需要清除的时候,调用pageTimer的clearAll方法
var pageTimer = (function() {
  var all = {};
  return {
    timers: all,
    add: function(key, value) {
      all[key] = value;
    },
    clearAll: function() {
      for (let key in all) {
        clearTimeout(all[key]);
      }
    },
  };
})();

pageTimer.add(
  'one',
  setInterval(function() {
    console.log('i am 1');
  }, 1000)
);
pageTimer.add(
  'two',
  setInterval(function() {
    console.log('i am 2');
  }, 1000)
);