分类: LINUX
2011-04-08 10:23:31
网站最近搞了次优化,效果比较明显,以前不敢用的动态加载(我自己起得,洋名叫lazy load,这样翻译应该也算得体,延迟加载也说得过去..)终于派上了用场.
总的来说是这样的:
具体实现:
1 . 实现js和css的动态加载
适用 : 页面的pv较高,功能模块较多,每次刷新页面都需要重复解析和渲染.
缺点 : 用户从点击一个按钮到函数响应,中间会有静态的下载和解析的一段延迟(有客户端缓存会好的多)
优化 : 为了尽量让用户感觉不到延迟,我们在登录页面预载的一些经常用到的脚本(由于网站的更新周期固定,所以脚本仅会在更新当天预载)
实现 :
以上代码是人人网个人主页中的一段代码,用来动态加载打招呼的功能,files注册需要动态加载进来的静态,funcs注册触发加载的函数名.这个东西以前写过
2 . 实现图片的动态加载
适用 : 现在仅对新鲜事动了刀,因为新鲜事里图片变动太快,客户端缓存率太低.整个页面图片动态加载没有必要,因为很多模块都是固定的,本来客户端就有缓存.
缺点 : 这个东东很冒险,上线之后发现ff3.0刷新之后图片全白了,正在优化实现代码…
优化 : 既然问题那么多,为了便于维护,仅对ie和ff两种用户比较多的浏览器才用这种方法.
实现 :
以上是人人网home页新鲜事中的一段代码,图片的src=””是一个1×1像素的空白gif,而 它的真正地址被存在”lala”这个属性中(有人问我为什么要起个lala呢…随意起得了,起个dongganchaoren就有点长 了…),onload中的feed_delay_load是关键,1×1的图片加载完毕后会调用它,它首先会判断图片是否在可视区域,如果是把它显示出 来,如果不是把图片放到加载队列里.然后会有一个定时器检测屏幕滚动,从队列里加载图片.
优化效果 :
试过才知道,真的好用…
原文: