在后台运行Chrome扩展程序

wou*_*_be 10 google-chrome google-chrome-extension

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

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

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

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

你会怎么处理这个?

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

sys*_*sop 14

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

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

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

function updateBadge() {
  getUnreadItems(function(data) {
     chrome.browserAction.setBadgeText({text:data.unreadItems});
  });
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以发出请求并安排它,以便定期检索和处理数据,您也可以随时停止请求.

var pollInterval = 1000 * 60; // 1 minute

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

function stopRequest() {
  window.clearTimeout(timerId);
}
Run Code Online (Sandbox Code Playgroud)

现在加载它......

onload='startRequest()'
Run Code Online (Sandbox Code Playgroud)

此外,HTML5离线存储适用于存储数据并不断更新...

var data = "blah";
localStorage.myTextData = data;
Run Code Online (Sandbox Code Playgroud)

  • 哦,我想我可以用这个来解决这个问题:http://code.google.com/chrome/extensions/messaging.html (2认同)