上下文:我将解释这个问题的上下文,但我认为这个问题的答案不是很具体。
我在 chrome 中有一个 chrome 扩展程序的背景页面。该页面执行以下操作:
chrome.commands.onCommand.addListener(function(){
chrome.windows.create({
url:"page.html",
type:'popup'
});
});
如您所见,当用户触发命令(通过使用热键)时,这会创建一个新窗口,从我的扩展中加载 page.html 文件。
页面 page.html 是一个相当重的页面。它运行一堆脚本(全部来自扩展目录)和一堆图像(也全部来自扩展目录)。
上下文要点:这里重要的是页面完全在本地加载。没有任何东西(直到用户输入)调用互联网,当我离线时它加载得很好。
问题:
- 如上所述,当我通过触发事件加载窗口时,加载需要一些时间,假设可能需要 1.5 秒。如果我随后刷新新窗口 (page.html),它会在不到 0.5 秒的时间内加载。造成这种时间差异的原因是什么?
- 如何利用更快的刷新率来加快初始页面加载速度?我可以以某种方式加载隐藏版本吗?或者以某种方式预呈现它?如有任何建议,我们将不胜感激。
最佳答案
关于第一个问题:
刷新页面不会导致所有内容(如渲染引擎)再次初始化。根据浏览器的实现,浏览器会在缓存中保留大量资源,当再次访问相同的 URL(本例中为页面刷新)时,会从缓存中加载资源,这样速度更快。因此造成时间上的差异。
关于第二个问题:
@elfin forest 的回答可能会给您一些启发。
关于javascript - 为什么创建窗口比重新加载窗口慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48352807/