由于 Chrome 扩展文档中没有明确的解释,所以我来这里寻求帮助。
我了解到,背景页面基本上是为了延长扩展的生命周期而发明的,旨在保存值或保持“引擎”在后台运行,这样就没有人注意到它。因为一旦您单击扩展程序的图标,您就会看到他们所说的“弹出窗口”,一旦您单击“弹出窗口”之外,它就会立即消失,最重要的是扩展程序“死亡”(其生命周期结束)。
到目前为止,我们一切都很好,但是:事件页面是在那之后发明的
它们基本上是后台页面,仅在调用时才起作用(以提供更多内存空间)。
如果真是这样,那岂不是自相矛盾了?如果事件页面仅在被调用时才起作用,那么它们有什么用?
有时后台页面只需要响应外部的事件(消息、Web 请求、按钮点击等)
在这种情况下,一个活动页面说得通。它并没有像扩展停止一样完全卸载 - 它定义了它的事件处理程序(它想要监听的内容),然后关闭直到需要为止。将此视为“我要睡觉了;除非 A 发生,否则不要叫醒我。”
与您的示例的区别:关闭的弹出窗口完全不再存在,而Chrome 会记住它需要针对特定事件调用特定扩展。如果该事件发生,后台页面将再次启动,并在其中触发该事件。
这可以节省资源,但并不总是合适的。关闭后台页面的上下文会擦除其本地状态;它必须保存在各种存储API中而不是变量中。如果当地状态很复杂,可能不值得付出努力。此外,如果您的扩展需要非常快速或非常频繁地做出反应,则挂起/恢复可能会影响性能。
总而言之,事件页面并不能完全替代背景页面;这就是为什么它们是可选的而不是默认的。有有很多事情需要考虑制作活动页面时。
附:将您的“弹出窗口作为扩展程序最重要的部分”:这正是为什么它在大多数情况下不能成为最重要的部分的原因。通常,背景页面还与弹出窗口一起使用,以保留事件侦听器和本地状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)