网页图片优化16个技巧

类别: 技术文章 2023-09-02

  ### 一、优化图片
  几乎没有哪个网页上是没有图片的。如果你经历过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;`
  又或者这句:
```html
<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来包含:
```html
<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.kenengba.com/220”,当服务器收到这样一个地址请求的时候,它需要花费时间去确定这个地址的文件类型。如果220是一个目录,不妨在网址后多加一个斜杠,让其变成www.kenengba.com/220/,这样服务器就能一目了然地知道要访问该目录下的index或default文件,从而节省了加载时间。
  ### 五、标明高度和宽度
  这点很重要,但很多人由于懒惰或其它原因,总是将其忽视。当你在网页上添加图片或表格时,应该指定它们的高度和宽度,也就是height和width参数。如果浏览器没有找到这两个参数,它需要一边下载图片一边计算大小,如果图片很多,浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。
  下面是一个比较友好的图片代码:
```html
<img src="example.jpg" alt="示例图片" width="300" height="200">
```
  当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容。加载时间加快了,浏览体验也更好了。
  ### 六、减少http请求
  当浏览者打开某个网页,浏览器会发出很多对象请求(图像、脚本等等),视网络延时情况,每个对象加载都会有所延迟。如果网页上对象很多,这可能需要花费大量时间。
  因此,要为http请求减负。如何减负?
  1. 去除一些不必要的对象。
  2. 将临近的两张图片合成一张。
  3. 合并CSS
  看看下面这段代码,需要加载三个CSS:
```html
<link rel="stylesheet" href="styles1.css">
<link rel="stylesheet" href="styles2.css">
<link rel="stylesheet" href="styles3.css">
```
  我们可以将其合成一个:
```html
<link rel="stylesheet" href="styles.css">
```
  从而减少http请求。
  ### 七、其它小技巧
  1. 去除不必要加载项。
  2. 如果在网页上嵌入了其它网站的widget,如果有选择余地,一定要选择速度快的。
  3. 尽量用图片代替flash,这对SEO也有好处。
  4. 有些内容可以静态化就将其静态化,以减少服务器的负担。
  5. 统计代码放在页尾。