在所有“加快您的网站”网站和书籍,他们总是告诉我们尽可能不惜一切代价尽量减少HTTP请求。这很好,但是如果这意味着在每个页面上都必须重新加载120kb,因为用户缓存是空的,那么该怎么办?使用缓存文件或多一个HTTP请求?
如果我在我网站的每个页面上使用5个js文件,将它们放在一个文件中并在每个页面上加载此文件会更好,而不是将它们与其他所有变量文件放在一个大文件中并保存一个HTTP请求。从哪个点或文件大小可以“缓存”文件并有另一个HTTP请求?
我给你3页的例子,当我使用每页一个minifed JS文件只有一个HTTP请求:
- jQuery的,jQuery UI的,ThickBox的,LavaLamp的菜单=>在一个文件中一起精缩= 300KB
- jquery的,jQuery的用户界面,周期插件=>一起在一个文件=> 200KB
- jquery的,jQuery的用户界面,拱廊插件精缩=>在一个文件=> 250KB
而现在一起精缩OTH呃可能性总是具有2 HTTP请求:一个文件,包括jQuery和jQuery用户界面=> 150KB的,让我们把它叫做 “jui.js” 现在
- jui.js,ThickBox的,LavaLamp的再次= 300KB在开始的时候,但现在jui.js被缓存了另外两页
- (jui.js现在被缓存,所以没有加载),只循环插件=>只有50kb加载但多一个HTTP请求,因为我加载jui.js和循环插件分开。
- (jui.js已经缓存)中,仅负载拱廊插件=>仅100KB更加载但再次,其中一个请求已经在该点或KB大小缓存
SO 2个的HTTP请求是它确定在正常的“响应”Web服务器上有另一个HTTP请求?
有没有人有任何最佳实践,或者它只是“不惜一切代价最小化HTTP请求!”?
(我希望我自己清楚:)我会尽快投达人,因为我有一些点!)
编辑:
这是basicly一个简单的问题: 多久为缓存的js文件需要额外的HTTP往返?如果http请求比我需要在每个页面上下载额外的非缓存部分的时间要慢,那么我会将所有内容放在每个页面上的一个大文件中(每个页面上有一个不同的大文件)。
如果缓存的js文件的HTTP请求几乎没有,那么我会将每个页面需要的部分拆分为额外的js文件(当然是minifed),并将每个页面的动态部分包含在differend中(再次缩小)js文件。
因此,如果在大多数页面上我需要额外的100KB(动态部分),我如何测试缓存的HTTP请求的时间?有没有数字,有没有人测试过这样的事情?
感谢您的好评!
我在页面底部有javscript,不管是否有一个或两个文件。 我真的不再在拨号上测试了,我也拒绝剔除IE6浏览器的调整。我在这:) :) 感谢您的提琴手提示! – Tschef 2009-09-29 23:01:41