我目前正在创建我的第一个Chrome扩展程序,到目前为止一直很好。 这只是我运行多个计时器的一个小测试。
但很明显,当我打开和关闭扩展程序时,我的所有计时器都会重置。
因此,为了让我的所有计时器保持运行,当我关闭扩展程序并让它们在后台页面中运行时,我必须以某种方式使用它们。
当我再次打开扩展程序时,应将这些计时器发送回打开的页面。
你会如何处理?
我已经有了一系列我的计时器,对我来说最好的选择>
答案 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;