Запустить расширение Chrome в фоновом режиме

в настоящее время я создаю свое первое расширение Chrome, до сих пор так хорошо. Это просто небольшой тест, где я запускаю несколько таймеров.

но, очевидно, все мои таймеры сбрасываются, когда я открываю и закрываю расширение.

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

когда я снова открою расширение, эти таймеры должны быть отправлены обратно на открытую страницу.

Как ты справишься с этим?

У меня уже есть массив всех моих таймеров, что было бы лучшим вариантом для меня>

1 ответов


фоновая страница запускается в любое время, когда расширение включено. Вы не можете увидеть его, но он может изменить другие аспекты расширения, например, установить значок действия браузера.

например, следующее установило бы значок значка на количество непрочитанных элементов в гипотетической службе:

function getUnreadItems(callback) {
  $.ajax(..., function(data) {
     process(data);
     callback(data);
  });
}

function updateBadge() {
  getUnreadItems(function(data) {
     chrome.browserAction.setBadgeText({text:data.unreadItems});
  });
}

затем вы можете сделать запрос и запланировать его, чтобы данные извлекались и обрабатывались регулярно, вы также можете остановить запрос в любом время.

var pollInterval = 1000 * 60; // 1 minute

function startRequest() {
  updateBadge();
  window.setTimeout(startRequest, pollInterval);
}

function stopRequest() {
  window.clearTimeout(timerId);
}

теперь просто загрузите его...

onload='startRequest()'

кроме того, HTML5 offline storage хорош для хранения данных и постоянного их обновления...

var data = "blah";
localStorage.myTextData = data;