【发布时间】:2013-04-20 22:25:11
【问题描述】:
在新的 chrome 扩展 API 中,“背景页面”被替换为“事件页面”,这些页面在扩展安装时仅加载一个,并且需要注册回调,该回调将由 chrome 在某些事件上调用。
我想创建每秒执行我的代码的“事件页面”。我用“manifest.json”创建了一个扩展:
{
"manifest_version" : 2,
"name" : "myextension",
"version" : "1.0.0",
"background" : { "scripts" : [ "background.js" ], "persistent" : false }
}
和“background.js”:
function onTimer()
{
console.log( "on timer" );
}
function onStartup()
{
console.log( "on startup" );
window.setInterval( onTimer, 1000 );
}
console.log( "script load" );
chrome.runtime.onStartup.addListener( onStartup );
安装扩展程序后,我可以在开发人员工具控制台中看到“脚本加载”,但看不到“启动时”和“计时器时”:(。在我关闭并重新打开浏览器后,甚至“脚本加载”都没有显示(这是预期的)。我做错了什么?
【问题讨论】:
-
setInterval->chrome.alarms -
@RobW “为了减少用户机器上的负载,Chrome 将警报限制为最多每 1 分钟一次,但可能会延迟任意数量”
-
每秒运行代码意味着必须一直加载后台页面。那么你必须使用背景页面,而不是事件页面。 (你每秒需要做什么?它必须消耗大量资源并且可能会降低浏览器的速度。)