javascript - 为什么创建窗口比重新加载窗口慢

标签 javascript html google-chrome page-refresh

上下文:我将解释这个问题的上下文,但我认为这个问题的答案不是很具体。

我在 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/

相关文章:

javascript - 重复向 div 元素添加文本

javascript - 使用 window.onbeforeunload 避免双击

html - 是什么导致此 Accordion 导航失去浏览器默认焦点?

javascript - 获取 AngularJS [$injector :modulerr] even when code is correct

css - Chrome 浏览器在版本 77 更新后更改样式

javascript - JWPlayer7获取当前视频信息并点击缩略图时显示

php - html5 嵌入 mp4 视频 |如何知道设备是iphone 3/3gs 还是4 | mp4尺寸太大

javascript - 滚动应该出现在具有固定表头的整个表中

javascript - 在 chrome 的密码字段上使用 setCustomValidity 的不可读文本

javascript - XMLHttpRequest 无法加载 http ://localhost:8089/jquery. Access-Control-Allow-Origin 不允许 Origin null