2012-12-05 71 views
4

我想知道为什么我们应该结合Javascript和CSS文件,因为它只是第一页加载的优势。在所有跟随的请求JS/CSS从客户端浏览器缓存加载。那么它应该没有性能差异,或者我完全错了吗?客户端缓存Javascript/CSS文件

+0

我认为你的想法正好相反。在第一页加载时,浏览器必须请求每一个资源。在接下来的每个请求中,浏览器(可以)使用缓存资源,而不是从服务器获取缓存资源,从而减少开销。那是你问的,还是我完全错了? – Ian

+2

如果我没有弄错,浏览器仍然会提出一个请求,看看服务器是否有比缓存的文件更新版本的文件。 –

+2

虽然第一印象很重要。如果您的网站首次加载年龄,用户可能会在完全加载之前将其关闭。 – kapa

回答

4

有几个方面的原因:

  1. 浏览器通常对他们有多少HTTP请求做出特定网站在同一时间的限制(出于礼貌,多出任何真正的技术限制) ,而且你不一定需要scriptC.js和Z.css支持scriptA.js和A.css;
  2. 每个单独的HTTP请求在延迟和带宽上都有开销,即使它是'条件GET'导致'304 - 未修改'的响应;
  3. 缓存确实会随时失效。在HTTP中,到期的确切时间通常由服务器在HTTP响应头中设置。问题是,服务器从不知道确切的时间到更新将会发布多长时间,所以它不断地对冲它的投注并给出一个“足够短”的失效日期。 (使用由HTML文件中包含独特的资源所产生的名字是避开这个子弹的一种方式......只需要检查封闭的HTML页面

有一个小的原因有2个脚本:

  1. 你可以有尽快开始执行一个脚本,而大脚本加载。

但是,是的,它是所有关于最终用户感知的速度... 尤其第一页面加载,当你试图赢得他们的参与灰。

+0

谢谢你的答案,这很有道理:) – Tommy