如何减少点击扩展图标和显示内容之间的时间?
我正在做一个非常简单的扩展。一旦启动,它会快速加载,但是在单击和弹出窗口加载之间会有一定的延迟。我在这里添加了gif效果。(gif看上去有点忙碌,因此我将其放在链接下,以免灼伤您的眼睛!)由于它在我的计算机上的加载速度比其他人更快,因此它并没有真正做到这一点。一些理由。
这个问题(带有chrome扩展弹出窗口的轻微加载延迟)似乎解决了同一问题,但没有答案。我认为这个问题(更快地加载chrome扩展弹出窗口)也解决了这个问题,但是它的答案似乎正在解决另一个问题。
我的仓库在这里:https : //github.com/bvn-architecture/shackleton
如果我分析了扩展程序的加载时间,它将从出现弹出窗口时开始进行测量:
这意味着加载后约5ms,屏幕上会出现一些东西。它不包括暂停。
我认为您面临的延迟是由于在Chrome中启动新任务过程所需的时间。
打开Chrome menu > More tools > Tasks manager,您将看不到对扩展的任何引用。
现在,单击扩展程序浏览器操作图标,您将看到,经过各种延迟后,任务管理器中将出现一个名为“扩展名:BVN工具栏”的新条目。任务出现后,您的弹出窗口打开。
如果您从Chrome扩展程序示例中测试“我的书签”示例扩展程序,您将看到完全相同的行为。
现在,如果您看看其他扩展程序,例如Adblock Plus,它使用了像您这样的浏览器操作图标/弹出窗口,您会发现其弹出窗口的打开速度比您快。
如果再次检查任务管理器,即使未打开弹出窗口,您也会看到名为“扩展:Adblock Plus”的任务。
这是因为许多扩展程序(例如Adblock扩展程序)正在使用永久性后台页面,这些页面是在扩展程序生命周期中一直存在的单个长期运行脚本(直到您禁用它,关闭浏览器等)。
如文档中所述,不建议使用持久性后台页面,而建议使用事件页面(非持久性页面)。但是对于您而言,使用事件页面将无法解决您的问题,因为当事件页面未主动执行操作时,将其卸载以释放资源。
简单的方法
在manifest.json
文件中定义一个持久的后台页面将解决您的问题,但会导致不必要的内存使用,以使扩展任务保持“活动”状态(并且扩展不需要它来工作):
"background": {
"page": "popup.html"
},
另一种方法
向Google提交问题。也许他们可以针对这种情况进行一些优化,或者它们会为您提供更好的解决方案。并且您可以解释说,这鼓励使用持久性背景页面而不是事件页面:-)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句