如果缓存了http请求的数量减少了吗?

时间:2012-01-14 23:03:51

标签: http browser-cache

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

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

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

3 个答案:

答案 0 :(得分:4)

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

1:即使对于缓存文件,性能也很小(每个文件)

如果您对自己的网站进行了分析,您会发现对于每个资源,仍然会向服务器进行往返。如果资源尚未更新,则服务器将返回HTTP状态代码304 - Not Modified,否则将返回HTTP状态代码200(以及资源​​本身)。

以下是通过分析Stack Overflow主页CSS文件生成的示例跟踪:

enter image description here

正如您所看到的,即使CSS文件被缓存,也会发出请求以确保缓存版本是最新的。

2:首次访问者也将受益于此次优化

它将提高首次访问者和过时缓存的任何人的页面加载速度。

答案 1 :(得分:1)

是的,浏览器会获得内容大小以确定文件是否已更改。所以无论浏览器是否已经缓存它,它都会发送http请求。

答案 2 :(得分:0)

确实,只要加载和缓存文件,css和js分成多少个文件就无关紧要,速度也是一样的。

当然,每次用户清除缓存时,都会再次提供10个文件,从而导致更多的http请求。

通常,最好尽可能少地将文件发送到服务器,尤其是当您的网站被大量用户访问时。每当你可以保存http请求时,你应该。