gpt4 book ai didi

google-chrome - Chrome 扩展程序 : Execute background page only once when chrome starts

转载 作者:行者123 更新时间:2023-12-02 11:23:35 26 4
gpt4 key购买 nike

我正在玩 chrome 扩展,我的 list 加载了一个背景页面:

...
"background": { "scripts": ["background_page.js"], "persistent": false },
...
.js代码如下所示:
var once = false;
window.addEventListener("load", function () {
if ( once == true ) { return; }
alert( 'test' );
once = true;
}, false);
这似乎工作正常,但我想运行 background_page.js每次浏览器启动时只编码一次。
现在,我不确定为什么,但是代码被执行了不止一次。起初我以为每次打开新标签时都会执行它,但事实并非如此。一旦我启动浏览器,警报就会出现,然后如果我快速打开一个新选项卡,警报不会出现,但是如果我等待大约 1 分钟左右并打开一个新选项卡,则警报再次出现。
我如何确保 background_page.js每次浏览器启动时代码只运行一次?

最佳答案

您使用的是 Event Page (background_page.js)。当浏览器检测到页面没有做任何事情时,事件页面就会被卸载。所以发生的事情是,当您打开一个新选项卡时,事件页面正在重新加载并再次从顶部开始执行。通过这种方式,chrome 能够让您的应用程序使用更少的内存并加快浏览器的速度。

如果您想解决问题,只需使用 persistent:true这将确保页面无限期地“持久化”或直到用户关闭浏览器。如果你真的想保持你的应用程序在内存方面的效率,你应该看看 runtime.onSuspend每次卸载事件页面时都会调用该方法。通过这种方式,您可以在页面卸载之前保存内容,以便您可以从上次中断的地方继续。

关于google-chrome - Chrome 扩展程序 : Execute background page only once when chrome starts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17632919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com