日期:2014-04-06  浏览次数:20828 次

图像可值上千个字-特别在网上,一个简单的图像下载的时间相当于若干页下载的时间。到网上去看看,你会发现大块的下载时间来自于图像文件。

  在以后的四天里,我们会看到使页面趋向完美的所有不同的方法。今天我们从最明显的罪魁开始-图像。



  第一:网页访问者往往没有耐心。你的图像可能很酷,但是如果她们对于快速下载来说太丰满,很少有人会坚持到最后以求一睹她们的尊容。幸运的是,网页设计者可以使用一些技巧和优化来加速图像和页面的下载。

  第二:不必要的就不要其实没有什么特别的技巧。做其它事之前,从你的页面中把所有多余的图像去掉。这里“多余”不是指你们公司的标志或你们办公室的地图。我们是指那个精明的、在“发邮件”旁边的动画信封。也许在你的页面底部还放着随处可见的NetscapeNavigator和Internet Explorer按钮。说实话,有多少人没听说过这些产品呢?

  在网站中减少一个琐碎的10KB的图形文件可能对整个网站改进不大。但是如果你的整个页面才40KB,减少10KB就可以减少25%的下载时间-减少一个跳舞婴儿的按钮还是合算的。

  如果你的网页确实需要削减,可以考虑用文本“提交”按钮代替图形“提交”按钮。用静态图形代替动态GIF图形可以减少下载时间。最后,一些神奇的“header”图形可以用<FONT SIZE>和<FONT FACE>标记代替。

  第三:GIF文件和JPEG文件除非你想得到ARCHIE或GOPHER一样的火箭速度,你总会用到一些图形。遵守一些创建图像的规则,你的页面下载的时间就会可行。

  开始时,确定一个图像用GIF格式还是JPEG格式。这看起来很基本,但是还有一大部分网页犯这样的错误。

  GIF用在看起来干脆整洁的小图形上是很完美的,但是不会超过256色。GIF也可存为“透明色”-允许图形有不规则的边界。简单的公司标志、小按钮和导航条是应用GIF图形格式的很好的例子。不象JPEG,GIF是一种无损失的压缩格式,所以你的图形不会变得模糊不清。如果你在扫描有详细细节的地图,应该选择GIF格式。不过,如果图片很大,GIF文件会很大,下载时间也会很长。


  你不能从根本上压缩GIF文件,但是可以减少位深,即限制颜色数。给定位深的颜色数等于2的位深次幂(即,8位=256色)。颜色数越少,图像的字节数越少。假设你正在建一个可口可乐的网站,可以把很多标志的位深减少到3或4位(红、白,或许还需要这两种颜色的阴影色来使边界光滑)。可以用Debabelizer软件改变位深。

  JPEG文件可以显示几千种颜色,而且压缩率比GIF文件高。它们很适合照片方式的图像。不过压缩成JPEG文件时会损失一些照片的细节。

  第四:合适的尺寸当你使用图形编辑器时,保证图形尺寸(72dpi)与将要在网页上显示的相同。在HTML中,用<IMAGE>标记的WIDTH和HEIGHT属性重述图像的实际尺寸。这可以使浏览器在图像下载时同时呈现页面的其余部分-于是人们在等待图像是有其它东西读-并且保证在“关闭图像”浏览时可以看到正确的页面布局。

  如果在页面中使用表格,图像尺寸非常重要:因为没有定义尺寸的图像会迫使浏览器清除和重绘页面。这种情况发生在当浏览器按照<TABLE>和<TD>来建造表格,然后却发现表格单元中的图像没有尺寸参数却太大而不能放在表格中时。浏览器只得重绘表格来容纳如此笨拙的图像。效率低下的页面重绘浪费时间,而且用户看到不断消失和重绘的页面时也会不高兴。

  使用WIDTH和HEIGHT时,最重要的是不要用它们调整页面图形的大小或形状。通过HTML调整大小是很差劲的,有两个原因。如果你放大图像,你会得到一幅有锯齿的图片。

  用HTML使图像变小不是一直很坏,但在表现上很差。因为浏览器下载的数据比实际要显示的图像多,于是增加了下载时间。



  第五:缓存是你的朋友有一个使图像下载更快的重要技术。那些在网站中重复出现的图像-比如通用标志、页首或导航条-不必一遍一遍地下载。缺省地,Netscape和Internet Explorer在RAM或硬盘上设置缓存来存储最近用到的图像。如果浏览器认识是相同的文件名,它会读缓存,而不是从网上下载。这种方法大大地提高了效率,以至于很多自动记时程序无法识别-你只好用跑表自己测测了。

  既然客户端的缓存如此有用,在设计网页时就应考虑到浏览器的缓存。例如,如果网站有大量相似的页首图形,应试图把它进行分割,使其中不变的部分能从缓存中立刻读出来。虽然在每页还要调用一个新图,因为这个图很小,所以下载很快。

  最后,把你的图像放在一个地方,最好在你的服务器上。这可以减少DNS查找的时间。另外,如果你要存储图像的一个或几个服务器崩溃,将是一件很不幸的事。
现在,我准备讲一讲如何使这些网页更苗条。 

  首先,页面出现在网上时,有三种速度: 

  下载时间渲染时间可视性 

  用户在做是进行下去还是退回的决定时,主要考虑这三种速度的整体效果。好的设计者需要找到平衡这三者的方法,进而产生理想的下载:从用户点击请求到下一页出现只是一眨眼的瞬间。 

  记住:用户的忍耐期限在存取页面的第一秒就结束了,而不是在页面完成渲染时。就用户经验来说,确定渲染时间是很有学问的。我有一辆老车,我不在乎它的外观和声响。我想要的只是能用钥匙打开车,加油,能开走。我的一位有钱的朋友有一辆Saab车,只用一分钟就能达到颠峰速度。我的车要20分钟预热,但是我无所谓-引擎点着火时我用脚踩加速器,我只要驾驶就够了,加速的事让车自己去考虑吧! 

  我用搅拌器轮子的例子说明实际速度与感觉到的速度的重要区别。知道页面要有一定时间渲染用户才能看到,设计者可以从布局的观点出发创建成功的页面。当浏览器窗口一片灰色,什么也不做时,只要用户不问:“喂,到底页面有多大?”,那么页面还在工作。 

  我要向你展示我是如何增加页面的可感觉的尺寸的。和Jason一样,我也保持图形和图像的尺寸到最小。但是,不是简单地减少图像的颜色数,而是非常注意颜色的安排。 

  第一页:网站优化教程-第2天昨天Jason告诉第二页:在一行里不要放入所有颜色GIF只是颜色的列表。如果一个GIF文件有10个像素高,颜色列表就有10行。如果第一行是100个白色像素,GIF格式通过写一次“白”,然后加一条这种颜色再重复99次的注释。这种方法应在每一行中使用,所以如果第二行是粉红色,第三行是兰色都没有关系。换句话说,一行一行地重复白色并不能减少文件大小。实际上,在一行上有大量颜色的变化。假如第一行在黑和白之间不断交替- GIF格式不会通过加注释来减少文件大小-它只是记住白、黑、白、黑,等等。另外,黑白相间的行在一英尺外看只是灰色。当你沿着水平方向改变颜色时,尽量使用更多的相同颜色的片段:20个白色像素,然后是20个粉红色像素,然后是20个兰色的,20个红色的,20个绿色的,这样颜色的索引将是#FFFFFF*20、#FF00FF*20、#0000FF*20、#FF0000*20、#00FF00*20,这样可以把文件压缩得更小。 

  记住:通过使用HTML的HEIGHI和WIDTH标记简单地放大图像不会增加速度。一个1*1的兰色矩形很小,传输也比100*100的矩形快。但是把一个兰色像素扩展到100*100的矩形,最后却是一个24位的100*100的图像。GIF压缩只趋向于减少存储空间和传输速度。一旦浏览器的渲染引擎解压你的图像并显示到屏幕上,处理实际图像的时间和缩放到相同尺寸的时间差不多。在使用每一个技巧时看看它是否节省时间。  

  第三页:全是文本,没有图像和Jason一样,我尽可能用文本而不用图形,但是我的观点更极端:我认为应对每个使用GIF显示文本的设计者罚款15美圆。用户花钱上网,很慢的下载和渲染速度意味着时间和金钱的损失。设计者应为选择最适合文本意义的字体而骄傲。因为用户的计算机上不存在“灰姑娘的水晶鞋”这样的字体。(有多少人的机器上安装了Wiese字体?)-这样GIF格式的文本就产生了。如果你用图像表示文字只是保持字型的一致或控制字型大小和间隔,对于你的页面来说没有任何意义。所以别这样做。 

  要真正地减少下载时间,把渲染留给用户的操作系统。如今,浏览器通过解释HTML文档来渲染页面依赖于操作系统。利用用户的计算机产生神奇的字体或形状是最有效地利用带宽和处理器的最有效方法-把信息包含在GIF图像中是一种资源的浪费。用HTML定义矩形(table o