March 2007 Archives
前两天查了一些关于如何提高AJAX程序性能的网页,把结果总结一下。
影响AJAX程序性能的几个方面:
- Javascript 程序本身。比如字符串的连接操作带来的性能影响
- DOM操作。操作DOM节点是很有讲究的,相同的结果采用不同的方法效率能够相差几十倍。
- 渲染页面。浏览器的引擎结合DOM和CSS渲染页面的时候也会占用时间和资源。
- 网络流量。由于网络的延迟也会造成AJAX程序性能不好。
了解这些方面之后,就知道从那些地方入手提高性能。
在动手提高性能之前,最好构造一个方法衡量性能。
常用的方法就是,准备一个测试用的数据集,在javascript上加上计时器,测出一个时间作为基准时间,然后每次改变程序之后都再看一下新的运行时间是多少。这样有明确的指
标,才能够使得提高性能的尝试通往正确的方向。
最后就是一些tips,使用这些tips可以很好提高性能:
- 使用innerHTML不要使用createElement
- 使用innerText不要使用innerHTML
- 避免改变class,直接操纵style这个对象。
- 缓存全局对象。document啊,window啊,使用这些全局对象消耗还是挺大的,如果频繁使用的话,应该把它们缓存在局部变量里。
- 缓存对象的属性,比如s.Length.
- 复用已有的元素。
- 如果字符串连接操作比较多的时候(>10000),使用Array.join来代替字符串的 "+".
参考文献:
- Faster DHTML in 12 Steps
- Building High Performance HTML Pages
- DHTML性能提高的其他技巧
- IE + JavaScript Performance Recommendations - Part 1
- IE+JavaScript Performance Recommendations Part 2: JavaScript Code Inefficiencies
- Ajax Performance
- Boost Ajax performance using local storage
- JavaScript Performance Issues - Lesson 1
- JavaScript Performance Issues - Lesson 2
- JavaScript Performance Issues - Lesson 3
呵呵,在“今天的新发现”类别,可不一定都是新技术啊、新软件什么的,也可以写生活中的新发现。 以后就写一些新发现的好吃的。
以前只觉得Subway的三明治只是重视营养,放了一堆蔬菜,还是凉的,味道不咋样。前两天去吃了赛百味的金枪鱼三明治,真的很好吃。应该说是又健康、有好吃。强烈推荐。
这里再抄一些省钱方法,抄的不是原创:)
- 周一五道口店买一送一。周三财智大厦店买一送一。
- 集卡,买八送一。
- 秘笈1:加大便宜-适合多人协同
一人以上同去最好每2个6寸选择同一口味三明治,这样员工应该自动按照升级后的12寸三明治算钱。如:最受欢迎的金枪鱼三明治6寸23元,12寸才35元,比点2个6寸省11元。
当一个人来赛百味品尝三明治时,如果一个6寸吃不饱,可以选择6寸加双份肉-在原来选择的三明治基础上加同价位以下任意一款6寸三明治的全部肉品,6寸的5元/份,12寸的10元/份。这样的好处是多份肉可以保证蛋白质(肉)的摄入但是面包(碳水化合物)和蔬菜都是单份。如:意大利经典BMT19元双份肉是24元,比2个BMT31元还省7元。
以前有个坏毛病,出门下楼后发现忘带了一样东西, 然后就“算啦,回头再回来拿吧”。结果往往是这个东西很重要,自己不得不从公司专程跑回来再拿一次。当时是省了几分钟,最后要耽误几十分钟。
为什么想起来写这个呢,因为今天发现了一个以前犯的错误的不良后果, 自己自责一下。事情是这样的,改了一段代码,都测试好了后就要提交了,发现以前的几行注释,上面写着“小心修改这段代码,如果要修改一定要给xxx审查一下云云”。心里一小阵儿不快,然后就自我擅自估计不会有什么带来什么问题,就提交了。最后呢,今天发现那几行代码的修改果然带来了很不好的bug.结果修改,需要的代价更大。
所以,决心要改正自己这个毛病,发现错误的时候要做出正确的评估,立刻修改所付出的代价和等到将来错误的后果到来时在修改所付出的代价, 到底哪个大。一般来说,如果评估工作本身的代价比立即修改还要大的话,不如就立即修改好了。
这个blog上好久没有出现真人发的文章了,很久以前就被人讽刺为书签网站了。 自己太懒了,写个东西怎么就这么难呢。。。
因为我们去年成功发布了Exchange 2007,组织上决定给每个人发一个Zune. 但是迟迟还不来。巧合的是,春节前真是运势不错,公司的春节联欢会上居然抽奖抽到一个ZUNE, 而且是Easy FM的DJ -- Rich给我发的奖,好开心啊。开心完了就发愁,两个Zune如何处理处理啊。 我已经有了一个30G的IPOD了啊。
前两天,终于找到了合适买家,中午出手时还有些不舍得呢,哪里料到,到了下午2点,我们的带Exchange logo的Zune就到了:)
至于这个新发下来的ZUNE,由于它有Exchange 2007的logo我决定自己收藏,或者将来送给我的significant other :P 现在用来看电影还是不错的,至少屏幕比IPOD大一些,听FM也不错。现在就盼着将来ZUNE的SDK发布,我们就可以在上面写程序了,比如WIFI的RSS阅读器,或者直接看YouTube的视频:)。
周末的时候呢,抽空去了一下当代旁边的海报店“影视人”。终于如愿买到了电影海报。只买了一张肖申克的救赎,先找找感觉。据他说是进口原版的,我仔细看了一下,上面的最小的字倒是能看清楚,就当是真的吧:) 最喜欢的黑客帝国没有这么大的,只有明信片大小的,或者是暴大的那种,又贵又不清楚。
挂在墙上了,感觉有点家里的感觉了:)

从Palm m505到Palm TW再到现在的Trēo 650, 我一直坚守着Palm,因为它真的那么便利、好用、上瘾。