活动页面和背景页面

Ami*_*ine 7 google-chrome-extension

由于Chrome扩展程序文档中没有明确说明,我来到这里寻求帮助.

我了解到背景页面基本上是为了延长扩展的生命周期而发明的,旨在保持值或保持"引擎"在后台运行,因此没有人注意到它.因为一旦你点击了扩展名的图标,就会得到他们所谓的"弹出窗口",一旦你点击"弹出窗口"之外它就会立即消失,最重要的是扩展"死亡"(它的生命周期结束).

到目前为止我们都很好,一切都很好但是:事件页面是在此之后发明的,
它们基本上是后台页面,只有在被调用时才能工作(以提供更多的内存空间).

如果是这样,那么这不会是矛盾的吗?如果它们仅在被调用时才起作用,那么事件页面的用途是什么?

Xan*_*Xan 8

有时背景页面只需要响应它们之外的事件(消息,Web请求,按钮点击等)

在这种情况下,事件页面是有意义的.它没有被完全卸载,好像扩展已经停止 - 它定义了它的事件处理程序(它想听什么),然后关闭直到需要它.认为这是"我要睡觉了;除非A发生,否则不要叫醒我."

与您的示例的区别在于:已关闭的弹出窗口完全不存在,而Chrome会记住它需要在特定事件上调用特定的扩展名.如果发生该事件,则会再次启动后台页面,并在其中触发事件.

这节省了资源,但并不总是合适.关闭后台页面的上下文会擦除其本地状态; 它必须保存在各种存储API而不是变量中.如果当地的国家很复杂,那可能不值得.此外,如果你的扩展需要非常快或者经常做出反应,那么暂停/恢复可能会成为性能损失.

总而言之,事件页面并不是后台页面的完全替代品 ; 这就是为什么它们是可选的而不是默认的.有很多事情要考虑制作一个活动页面时.

PS关于你的"弹出窗口是扩展中最重要的部分":这正是为什么它在大多数情况下不能成为最重要的部分.通常,后台页面也会与弹出窗口一起使用,以保持事件侦听器和本地状态.