Chrome 服务工作人员内部或外部的屏幕外文档

uqcuzwp8  于 2023-02-14  发布在  Go
关注(0)|答案(1)|浏览(144)

通过执行某些操作(如打开屏幕外文档以进行音频播放):

function offscreenCreate() 
{
   chrome.offscreen.createDocument({
       url: 'offscreen.html',
       reasons: ['AUDIO_PLAYBACK'],
       justification: "something"
   });
}

我看过很多文档,展示了Service Workers中使用的操作(以及其他与屏幕外文档相关的操作,如关闭文档),但是将这些操作放在Service Workers中与放在Service Workers之外(只是一个普通的JS文件)是否有显著的区别,如性能?更具体地说,一般来说有必要吗?

holgip5t

holgip5t1#

屏幕外文档的用途是在不向用户显示UI页面的情况下执行某些操作,但您可能希望甚至从可见的UI页面(如弹出窗口)使用它,因为屏幕外文档的生命周期与其内部事务相关,而与创建它的环境无关,例如播放音频时,文档在播放音频时就存在,并在30秒静音后终止。当前只有音频是受限的,即生存期是无限的,否则,但将来可能会改变,因为ManifestV 3有意尽可能多地删除持久性,并切换到事件驱动的按需逻辑,因此使用服务工作者的决定是有争议的。
一般来说,这不会带来性能提升,而是会带来损失,因为这是一个标准的JS环境,JS引擎+ JS内置程序消耗至少~ 15 MB的内存,并且初始化所有这些程序至少需要50 ms的CPU使用率。然而,如果您reduce the number of times the service worker restarts,使用屏幕外文档可能有助于减少资源使用,从而提高性能。

相关问题