加速图片显示

星期二 06.05.2007 - Posted in 互联网产品设计, , - 24,495 views

加速的关键,不是降低重量,而是减少个数。如果重量在200K以内,只要网络不是特别慢,效率都差不多。但是,如果图片个数多一倍,效率将明显低一个档次。

传统切图讲究精细,图片规格越小越好,重量越小越好,其实规格大小无所谓,计算机统一都按Byte计算。客户端每显示一张图片都会向服务器发送请求,所以,图片越多请求次数越多,造成延迟的可能性也就越大。因为一张图片的传输时间,通常远小于请求等待的时间。

减少图片的三个技巧(CSS Sprite):

1. 图片限制(Image Slicing)

典型如文本编辑器,小图标特别多,打开时一张张跑出来,给用户的感觉很不好。如果用一张图解决,则不会有这个问题,比如百度空间、163博客、Gmail都是这么做的。

Gmail的透明工具条

Image Slicing’s Kiss of Death
http://www.alistapart.com/articles/sprites

2. 单图转滚(Single-image Rollovers)

触发切换图片的需求,传统方案得重新请求新图片,因为网络问题经常造成停留或等待。如果把多种状态合并成一张图,就能完美解决,然后再使用背景图技术模拟动态效果。

ColorScheme打分方案中星星的三种状态

ColorScheme Ratings
http://demo.rexsong.com/200608/colorscheme_ratings/

3. 延长背景(Extend Background Image)

如果图片的某边可以背景平铺无限延长,则不需要每个角、每条边单独搞出来,图片能少一个就少一个。其实,这个理论还可以扩展到四角容器里,好处是能大大简化HTML Structure。

标题左背景  标题右背景

Extend Background Image
http://demo.rexsong.com/200705/extend_background_image/

综合案例

Google Korea(1和2技巧)
http://demo.rexsong.com/200705/google_korea/

提供服务icon的N种状态

搜索类别icon的两种状态

CSS Menus(2和3技巧)
http://demo.rexsong.com/200705/css_background_menus/

导航左背景  导航右背景

蓝色经典 http://www.blueidea.com/tech/site/2007/4750.asp

© 一叶千鸟(转载请留原文链接,更新于2007年12月31日14点)

40条评论 发表»

空格 says:

沙发。
果然高!

peter says:

cool

最关心的就是评分显示的

usaway says:

厉害.
不知源码是怎么控制图片的.

风采依扬 says:

不错。。

广告凶猛 says:

受益匪浅啊~~3Q~~

heiyo says:

精彩使用啊 ~

lisa says:

韩国GOOGLE那个,牛啦!研究半天没透彻! TAT 该怎么弄哦…伤脑筋!

iqst says:

不错

所罗门的封印 says:

韩国那个应该还是切换成gif动画图的背景,动画只循环一次吧

所罗门的封印 says:

哦 看错了 ,那张图是动画的不同状态,莫非是用js控制的

greengnn says:

http://www.yahoo.com/
用FF查看一下图片就会惊叹开发者为了降低并发付出的努力,部分用的也很是经典。

genous says:

我同意 个数越多。下载越慢的观点。
不过合体图片个数大小理想设置是多少还是没有个把握。

look says:

韩国GOOGLE那个采用js效果来控制图片进行视觉效果

bluepig says:

呵呵 造发现这个问题了

Thinker says:

厉害

wow says:

很好的教程啊
受益中……….

earn555 says:

关于图片背景,有时候要有单调的背景,这时可以用一像素宽的图来做,但我记得好像又有说“不要采用一像素,而要更宽一些,否则会耗更多系统资源”什么的,我不是很清楚,所以能否解说一下一像素宽的背景图是否有问题?

lili says:

确实很不错,收录了,呵呵!

charms says:

果然是高手,我每次都搞不好背景

charms says:

谢谢分享,一定好好利用

发表评论

Spammer必读