Chrome加载资源缓慢(从磁盘缓存)

10

我的网站http://www.front-end.io将HTTP请求配置为优先从缓存加载资源。因此,我的标题将如下所示:

cache-control:max-age=315360000
ETag:W/"11913b-ks0rwRQM+ijHcl1HDuse3g"

Chrome浏览器确实不会向服务器发起任何请求(即使是304),它直接从缓存中加载:

enter image description here

我的Windows10上的Chrome需要超过400毫秒才能从本地磁盘加载js文件。

我的Ubuntu上的Chromium也需要超过100毫秒。

但是FireFox仅需要大约10毫秒!

我也发现了这个问题:Google Chrome load image from cache slower than download,但没有解释。

有人可以帮忙吗?谢谢。


2
你是否使用像AdBlock这样的扩展程序? - Leonid Vasilev
啊,有趣。我禁用了扩展程序 Grammarly for Chrome,然后速度变成了10毫秒 :) @LeonidVasilyev 谢谢,请把你的答案写下来。 - Joy
1个回答

12

可能是错误的时间信息。

为了让Chrome Dev Tools(例如Timeline)显示正确的信息,您必须禁用扩展程序以排除它们产生的噪声。以下是Kayce Basques在如何使用Timeline工具文章中的相关摘录:

  

禁用扩展程序。 Chrome扩展程序可能会向应用程序的Timeline记录中添加不相关的噪声。打开一个处于隐身模式下的Chrome窗口,或创建一个新的Chrome用户配置文件,以确保您的环境没有任何扩展程序。

虽然一些扩展程序可以阻止资源请求并拦截,但Grammarly不是这些扩展程序之一。它的清单文件中没有指定所需的webRequestBlocking权限。有关更多信息,请查看chrome.webRequest页面

如果您测量浏览器从磁盘缓存获取/vendor.61e0ab918e699695d3a3.js脚本,编译和执行所需的时间,您会发现这个时间几乎是恒定的,无论Grammarly启用还是禁用。您可以使用以下代码片段:

<script>var startTime = performance.now();</script>
<script type="text/javascript" src="/vendor.61e0ab918e699695d3a3.js"></script>
<script>
  var endTime = performance.now();
  console.log("Time: " + (endTime - startTime) + " [ms].")
</script>

谢谢 @leonid_vasilyev:我禁用了 Chrome 扩展程序 Grammarly for Chrome,然后它恢复正常了。 - Joy
谢谢你关于隐身模式的提示。 - savehansson
非常感谢您提供的调查提示。在我的情况下,罪魁祸首是"Adblock Plus"。 - Elouan Keryell-Even

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接