分享一些优化网页加载速度的小技巧。
5 V* g( h# o! z8 K
一、优化图片
3 U/ n' Y4 y7 S1 z3 j% | D- q8 L0 z6 I
几乎没有哪个网页上是没有图片的。如果你经历过56K猫的年代,你一定不会很喜欢有大量图片的网站。因为加载那样一个网页会花费大量的时间。
/ D1 f1 M1 f5 o& v9 z1 L2 l7 A
即使在现在,网络带宽有了很多的提高,56K猫逐渐淡出,优化图片以加快网页速度还是很有必要的。
2 }! j* e* K5 ?' D
优化图片包括减少图片数、降低图像质量、使用恰当的格式。
8 C2 y1 l$ E, Y
1、减少图片数:去除不必要的图片。
, h, W+ x+ Z( H1 W4 Y
2、降低图像质量:如果不是很必要,尝试降低图像的质量,尤其是jpg格式,降低5%的质量看起来变化不是很大,但文大小的变化是比较大的。
1 Q8 j, G% T8 ]2 |) J
3、常识使用脚本文件代替效果:
9 P9 {% W! X! H S8 G
比如一些web2.0的样式,如果使用ps制作,每个图片基本会增加%5-%25的大小成本.
" d$ t5 K( [* p2 d! u$ P相反,使用javascript代码来实现效果,仅仅只增加几个字节.
, w" | ?3 r, u1 u
二、图像格式的选择
, A" Z# Q& c. i/ b) d/ H/ f
一般在网页上使用的图片格式有三种,jpg、png、gif。三种格式的具体技术指标不是这篇文章探讨的内容,我们只需要知道在什么时候应该使用什么格式,以减少网页的加载时间。
) `& b; z [1 t0 k0 \+ b$ V! b; s
1、JPG:一般用于展示风景、人物、艺术照的摄影作品。有时也用在电脑截屏上。
) ?7 F# p2 D8 D8 q/ e2、GIF:提供的颜色较少,可用在一些对颜色要求不高的地方,比如网站logo、按钮、表情等等。当然,gif的一个重要的应用是动画图片。
: O1 F( c8 K$ ?3、PNG:PNG格式能提供透明背景,是一种专为网页展示而发明的图片格式。一般用于需要背景透明显示或对图像质量要求较高的网页上。
4 g$ X+ T' ?7 e+ r! W& M, s6 ?% s8 H* K
三、优化CSS
+ k: C) M& Y6 U9 u; C3 X8 S
CSS叠层样式表让网页加载起来更高效,浏览体验也得到提高。有了CSS,表格布局的方式可以退休了。
" E, j% u: s2 E+ g, A" w
但有时我们在写CSS的时候会使用了一些比较罗嗦的语句,比如这句:
( W& }& a: }' `& m' A4 ?% c3 J7 t
4 M) ^2 L- {* _9 J) z复制内容到剪贴板
代码:
margin-top: 10px;
margin-right: 20px;
margin-bottom:
10px;
margin-left: 20px;
你可以将它简化为:
margin: 10px 20px 10px
20px;
又或者这句:
<p class="decorated">A paragraph of decorated
text</p>
<p class="decorated">Second paragraph</p>
<p
class="decorated">Third paragraph</p>
<p
class="decorated">Forth paragraph</p>
可以用div来包含:
<div
class="decorated">
<p>A paragraph of decorated
text</p>
<p>Second paragraph</p>
<p>Third
paragraph</p>
<p>Forth
paragraph</p>
</div>四、网址后加斜杠1 s7 t* ]) j1 X J# Y8 r A
- Z" k* X* S1 h( r. [+ }
有些网址,比如http://cheng-4.cn/512 当服务器收到这样一个地址请求的时候,它需要花费时间去确定这个地址的文件类型。如果220是一个目录,不妨在网址后多加一个斜杠,让其变成http://cheng-4.cn/512/,这样服务器就能一目了然地知道要访问该目录下的index或default文件,从而节省了加载时间。
0 Z, O/ k- Z/ r% x: z8 s
8 o6 z* w8 f8 A8 _五、标明高度和宽度
/ b7 U# _& h" m* V4 S% f* `- M% m7 ] V* Q! y5 b# s: h
这点很重要,但很多人由于懒惰或其它原因,总是将其忽视。当你在网页上添加图片或表格时,你应该指定它们的高度和宽度,也就是height和width参数。如果浏览器没有找到这两个参数,它需要一边下载图片一边计算大小,如果图片很多,浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。5 V) i2 l* |" z& f/ x& ~; m
0 g$ R! d1 A. f4 x+ k% ]; d
下面是一个比较友好的图片代码: & c9 W. @9 ~( e5 O2 P% E* C' J6 i1 I! ]
复制内容到剪贴板
代码:
<img id="img" height="200" width="450" src="http://www.cheng-4.cn/img/banner.gif" alt="banner" />当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容。从而加载时间快了,浏览体验也更好了4 R& v! x# i* S2 H! `6 L' B m
3 a v3 L5 ]4 U7 Y3 K. m* F
六、减少http请求
8 e) k8 s: }* U
9 K/ j0 i. b$ M, f/ X当浏览者打开某个网页,浏览器会发出很多对象请求(图像、脚本等等),视乎网络延时情况,每个对象加载都会有所延迟。如果网页上对象很多,这可以需要花费大量的时间。; M8 N' v/ N5 u1 [4 b2 ~
; Z0 m+ {, t1 |3 U因此,要为http请求减负。如何减负?( {% c; K; J5 R) y5 x
- x- S6 |- q) b7 r3 b9 `! }1、去除一些不必要的对象。
9 t: ~ ?! m. I6 E' F
6 K, Y) w$ o! l4 L2、将临近的两张图片合成一张。
5 A ~+ |7 F) Z% K: @$ C- K4 ?8 _$ x( V: w
3、合并CSS文件
~9 C; p6 @! o看看下面这段代码,需要加载三个CSS文件:* C: z4 U0 M0 M. A% P
<link rel="stylesheet" type="text/css" href="/body.css" />5 P: O% g$ r1 A8 h; c
<link rel="stylesheet" type="text/css" href="/side.css" />
* ?9 E4 k0 F+ b" n t1 U" a* V<link rel="stylesheet" type="text/css" href="/footer.css" />* @8 S$ _7 ?: B/ I* k
我们可以将其合成一个:# U8 p/ v9 k1 b) ?4 Z; P/ ~
<link rel="stylesheet" type="text/css" href="/style.css" />
2 h: ^, b7 G, P7 D6 k- \$ S6 P从而减少http请求。
3 t. c2 Y" W1 g# W3 p- F) T6 X4 G
8 P! |/ b* E8 |& \( l6 m9 C% u七、其它小技巧
. j+ }; w5 |9 M7 U% @
8 |0 }, o D. X" p1、去除不必要加载项。8 V, b- K2 p. I: g/ }
2、如果在网页上嵌入了其它网站的widget,如果有选择余地,一定要选择速度快的。
- T# W% R. |; l; R; [& u! z3、尽量用图片代替flash,这对SEO也有好处。 r' s; k/ Z. E* L
4、有些内容可以静态化就将其静态化,以减少服务器的负担。
$ s2 \- g7 Z5 |5、统计代码放在页尾(或者使用延迟加载)。
' z- L! o5 ^ y& @. O9 Q1 v