Запустите расширение Chrome в фоновом режиме - PullRequest
10 голосов
/ 09 февраля 2012

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

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

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

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

Как бы вы справились?this?

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

1 Ответ

14 голосов
/ 09 февраля 2012

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

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

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 хорошо для хранения данных и их постоянного обновления ...

var data = "blah";
localStorage.myTextData = data;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...