日期:2013-11-24  浏览次数:20726 次

加快网页打开的速度,有三个途径,一是提高网络带宽,二是用户在本机做优化,三是网站设计者对网页做一定的优化。本文站在一个网站设计者的角度,分享一些优化网页加载速度的小技巧。

      一、优化图片

  几乎没有哪个网页上是没有图片的。如果你经历过56K猫的年代,你一定不会很喜欢有大量图片的网站。由于加载那样一个网页会花费大量的时间。

  即便在如今,网络带宽有了很多的提高,56K猫逐渐淡出,优化图片以加快网页速度还是很有必要的。

  优化图片包括减少图片数、降低图像质量、使用恰当的格式。

  1、减少图片数:去除不必要的图片。

  2、降低图像质量:如果不是很必要,尝试降低图像的质量,尤其是jpg格式,降低5%的质量看起来变化不是很大,但文件大小的变化是比较大的。

  3、使用恰当的格式:请参阅下一点。

  因此,在上传图片之前,你需求对图片进行编辑,如果你觉得photoshop太麻烦,可以试试一些在线图片编辑工具。懒得编辑而又想图片有特殊的效果?可以试试用过调用javascript来实现图片特效。

  二、图像格式的选择

  普通在网页上使用的图片格式有三种,jpg、png、gif。三种格式的具体技术目标不是这篇文章探讨的内容,我们只需求知道在什么时候应该使用什么格式,以减少网页的加载时间。

  1、JPG:普通用于展现风景、人物、艺术照的摄影作品。有时也用在电脑截屏上。

  2、GIF:提供的颜色较少,可用在一些对颜色要求不高的地方,比如网站logo、按钮、表情等等。当然,gif的一个重要的使用是动画图片。就像用Lunapic制造的倒映图片。

  3、PNG:PNG格式能提供通明背景,是一种专为网页展现而发明的图片格式。普通用于需求背景通明显示或对图像质量要求较高的网页上。

  三、优化CSS

  CSS叠层款式表让网页加载起来更高效,浏览体验也得到提高。有了CSS,表格规划的方式可以退休了。

  但有时我们在写CSS的时候会使用了一些比较罗嗦的语句,比如这句:

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>

  简化CSS能去除冗余的属性,提高运转效率。如果你写好CSS后懒得去做简化,你可以使用一些在线的简化CSS工具,比如CleanCSS。

  四、网址后加斜杠

  有些网址,比如"www.aiyiweb.com/220",当服务器收到这样一个地址请求的时候,它需求花费时间去确定这个地址的文件类型。如果220是一个目录,不妨在网址后多加一个斜杠,让其变成www.aiyiweb.com/220/,这样服务器就能了如指掌地知道要访问该目录下的index或default文件,从而节省了加载时间。

  五、标明高度和宽度

  这点很重要,但很多人由于懒惰或其它缘由,总是将其忽视。当你在网页上添加图片或表格时,你应该指定它们的高度和宽度,也就是height和width参数。如果浏览器没有找到这两个参数,它需求一边下载图片一边计算大小,如果图片很多,浏览器需求不断地调整页面。这不但影响速度,也影响浏览体验。

下面是一个比较敌对的图片代码:

<img id="moon" height="200" width="450" src=http://www.aiyiweb.com/images/logo.gif alt="moon image" />
  
当浏览器知道了高度和宽度参数后,即便图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容。从而加载时间快了,浏览体验也更好了。

  六、减少http请求

  当浏览者打开某个网页,浏览器会发出很多对象请求(图像、脚本等等),视乎网络延时情况,每个对象加载都会有所延迟。如果网页上对象很多,这可以需求花费大量的时间。

  因此,要为http请求减负。如何减负?

  1、去除一些不必要的对象。

  2、将临近的两张图片合成一张。

  3、合并CSS

  看看下面这段代码,需求加载三个CSS:


<link rel="stylesheet" type="text/css" href="/body.css" />
<link rel="stylesheet" type="text/css" href="/side.css" />
<link rel="stylesheet" type="text/css" href="/footer.css" />

  
  我们可以将其合成一个:

<link rel="stylesheet" type="text/css" href="/style.css" />
  从而减少http请求。

  七、其它小技巧(译者添加)

  1、去除不必要加载项。

  2、如果在网页上嵌入了其它网站的widget,如果有选择余地,一定要选择速度快的。