原文地址:http://www.codeproject.com/Articles/26376/Speed-Up-Your-Website-By-Example
说在前面的:这个文章是08年的,比较老了,带着批判和找不同的心态去研究一下,会有收益的。
部分翻译:(翻译来自CSDN)
为什么减少请求数量
请求执行顺序:
e.g.: index.htm and then global.css, spring.css, logo.jpg, menu1.jpg, menu2.jpg, menu3.jpg, 1×1.gif, corner1.gif, common.js, validation.js etc…)
在加载页面时,浏览器从URL中(src)中提取头链接href={url},css文件链接和发送每个请求的资源。
大体上,浏览器在每台客户机提出页面请求时只并发下载2-4个资源请求,(取决于http和浏览器版本),一般来说,Firefox要比IE略好一些.
结论:请求与连接越少,则响应越快.
怎样减少请求数量?
减少文件数目(css,js,image)
合并文件(尽可能的)所有的CSS文件尽量合并归一,所有的JS文件尽量合并归一,
使用浏览器缓存
当第一次请求时,减少资源,之后将依靠cache机制,不必再请求资源。
使用”expires”头。
优化html
为什么优化它?
大体来说html只耗20%的时间而其它(CSS,Javascript,images)要消耗80%的时间
html包裹所有的对象(标签控件)和styles,这些都提供与浏览器进行解析,解包和render(生成).
由于浏览器之争(竞争)和x/html/css的兼容问题.浏览器被设计为两种模式:普通(快模式,信任模式),quirk模式(必须要验证HTML/CSS,找到和”原谅错误”)
怎么优化它?
1.减少下载时间
将冗长的一页尽量载减为多页
2.快速生成render
使用非常简单的设计
standard vs quirk mode两种模式的选择.
建立信任的standard模式(前提,设计者达到专业水平遵循标准)以使得浏览器使用最优化的解析
切换模式为标准模式
移除inline CSS改为外部CSS引用(减少内部脚本书写,如document.write())
如果遵循以上原则:浏览器会在生成内容与应用CSS和脚本改变布局之间踌躇,这种情况下会暂停内容的生成,所以要引用外部CSS,JS。
如果不遵循这条原则:外部文件意味着多了一个外部资源请求,如果主页CSS,JS很少,则用内联,减少请求数,加快响应速度。
减裁内容
少用table,转用div.为什么呢?浏览器不能生成实体控件对象(标签对应)直到捕捉到标签尾ie.</table>
若布局用bigger outer,(超多标签)
优化image
为什么要优化?
image消耗大量下载时间及带宽,在这方面节省时间会得到卓著的功效。
怎样优化?
1.减少图片的使用频率
2.使用css rollovers代替图片链接。
3.设置恰当的宽度与高度(尽量小)
4.仔细地选择图片的颜色与格式;
GIF: works best for solid colors and sharp-edged transitions from one color to other, Maximum colors: 256.
JPEG: works best for continuous gradations of many colors or grey tones.
5.避免动画与flash
6.背景尽量用颜色而不用图片
7.不要把图片放在服务器的多个目录上,(避免在两个请求中,得不到最优从第一次缓存图片)
8.在下载大图片时用进度条掩饰,这是个小把戏,但不会引起用户的反感.
9.尽量使用小于10kb的一张图片,尽量不要把大图裁成小图,因为这样会增加request的次数。
使用CSS Sprites或image maps代替
可以把零碎的一些小图拼成一张大图,然后使用css sprites或image maps。