как запустить и остановить таймер на странице настроек - PullRequest
0 голосов
/ 07 февраля 2012

Прямо сейчас у меня есть этот 1-минутный таймер на моей фоновой странице, который работает вечно, я хотел бы иметь возможность запускать и останавливать его со страницы параметров.

chrome.browserAction.setBadgeBackgroundColor({color:[0, 0, 0, 255]});

var i = 1;
window.setInterval(function(timer) {
chrome.browserAction.setBadgeText({text:String(i)});
i++;
}, 60000);

1 Ответ

2 голосов
/ 07 февраля 2012

setInterval() метод объекта Window планирует функцию, которая будет вызываться повторно с интервалами заданного количества миллисекунд. setInterval() возвращает непрозрачное значение, которое может быть передано clearInterval() для отмены любых будущих вызовов запланированной функции. Подробнее о Как работают таймеры Javascript . С этим вы можете написать что-то вроде этого:

My.Controller = {};

(function() {  
      var interval = 10;
      var timer = null;

  function init (param) {
    // initialisations if any   
  }

  // Override the default interval of 10 seconds by passing new interval 
  function startAction (param, tInterval) {
    // Set a timer
    var ti = (!tInterval) ? interval : tInterval;
    timer = setInterval(My.Controller.action, ti * 2000);    
  }

  function action () {
    // Logic here
  }

  function stopAction () { clearInterval(timer); }

  var c = My.Controller;
  c.init = init;
  c.startAction = startAction;
  c.stopAction = stopAction;
})(); // end Controller

Теперь вы можете сказать My.Controller.startAction(), чтобы запустить таймер, и My.Controller.stopAction(), чтобы остановить.

Прочитайте и изучите пространства имен в JavaScript . Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...