2012-01-14 61 views
3

我在我的网站上有大约10个引用的CSS和JavaScript(JS)文件,我可以将它们合并,因此只有2个CSS和JS文件供Web浏览器客户端下载。合并文件会减少HTTP请求的数量并减少页面加载时间。缓存http请求的数量是否重要?

我的问题是:如果这10个CSS和JS文件在第一次页面加载后被缓存,第二次页面加载时间是否与只有2个组合CSS和JS文件的页面一样快?我会这样想,因为缓存的文件不需要HTTP请求。我知道有些命令脚本可以自动将CSS和JS文件合并为一个部署,但这样做会使未来可能在网站上工作的初级程序员/网页设计师复杂化。该网站是一个慈善组织,并且只有很少的控制和可用的人力资源来保持事物的秩序。

更新:我的假设,使用缓存文件不需要HTTP是错误的。

回答

4

是的,即使资源被缓存,您也应该减少请求数量。有两个原因:

1:有一个小的性能损失(每个文件),甚至高速缓存文件

如果您分析您的网站,你会发现每一个资源仍有往返正以制作服务器。如果资源尚未更新,服务器将返回HTTP状态码304 - Not Modified,否则它将返回HTTP状态码200(以及资源​​本身)。

这是一个被剖析堆栈溢出网页CSS文件生产的样品跟踪:

enter image description here

正如你可以看到,即使在CSS文件缓存,有人要求以确保缓存版本最新。

2:第一次到访也将从这种优化

这将提高首次访问页面加载速度和任何一个过时的高速缓存中受益。

+0

服务器将返回HTTP状态码304 - 未修改。一点修正。所有这些都是做浏览器,而不是服务器。您可以使用已禁用缓存的浏览器尝试此操作。在这种情况下,服务器将始终返回200 - 确定。所以事实上服务器总是返回200.当然,除了一些情况。 – Cyberon 2012-01-14 23:29:43

1

是的,你应该,浏览器会得到内容大小,以确定文件是否已被更改。所以无论浏览器是否已经缓存了它,它总是会发送http请求。

0

确实,一旦文件被加载和缓存,无论css和js被分割成多少个文件,速度都是一样的。

当然,每次用户清除他们的缓存时,这10个文件将再次被服务,从而导致更多的http请求。

一般来说,最好尽可能少的文件到服务器,特别是当您的网站被大量用户访问时。每当你可以保存http请求时,你应该。