在后台运行Chrome扩展程序

时间:2012-02-09 07:29:45

标签: google-chrome google-chrome-extension

我目前正在创建我的第一个Chrome扩展程序,到目前为止一直很好。 这只是我运行多个计时器的一个小测试。

但很明显,当我打开和关闭扩展程序时,我的所有计时器都会重置。

因此,为了让我的所有计时器保持运行,当我关闭扩展程序并让它们在后台页面中运行时,我必须以某种方式使用它们。

当我再次打开扩展程序时,应将这些计时器发送回打开的页面。

你会如何处理?

我已经有了一系列我的计时器,对我来说最好的选择>

1 个答案:

答案 0 :(得分:14)

启用扩展程序时,后台页面始终运行。您无法看到它,但它可以修改扩展的其他方面,例如设置浏览器操作徽章。

例如,以下内容会将图标徽章设置为假设服务中未读项目的数量:

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;