为什么创建一个窗口比重新加载它慢

COM*_*ARD 14 html javascript google-chrome page-refresh

上下文:我将解释这个问题的背景,但我认为这个问题的答案并不是特定于上下文的.

我有一个铬铬合金扩展背景页面.该页面执行以下操作:

chrome.commands.onCommand.addListener(function(){
    chrome.windows.create({
        url:"page.html",
        type:'popup'
    });
});
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,当用户触发命令时(通过使用热键),这将创建一个新窗口,从我的扩展中加载page.html文件.

页面page.html是一个相当重的页面.它运行一堆脚本(全部来自扩展目录)和一堆图像(也都来自扩展目录).

上下文:这里重要的是页面完全在本地加载.没有(直到用户输入)呼叫互联网,并且当我离线时它加载得很好.

问题:

  • 当我通过触发事件加载窗口时,如上所述,加载需要一些时间,比方说也许1.5秒.如果我然后刷新新窗口(page.html),它会在不到0.5秒的时间内加载.造成这种时差的原因是什么?
  • 我怎样才能利用更快的刷新率来加快我的初始页面加载速度?我能以某种方式加载隐藏版本吗?或以某种方式预先渲染它?任何建议,将不胜感激.

Wal*_*bal 2

关于第一个问题:

刷新页面不会导致所有内容(例如渲染引擎)再次初始化。根据浏览器的实现,浏览器会在缓存中保留大量资源,当再次访问相同的 URL(本例中为页面刷新)时,会从缓存中加载资源,这样速度更快。因此造成了时间上的差异。

关于第二个问题:

@elfin Forest 的回答可能会给你一些见解。