Fdream's Blog
专注于WEB前端开发
Powered by Google

全新极速CSS选择器引擎whiz

21 多云 2009-8
Fdream 发表于 Ajax Web, 已被阅读 1313 次, 评论 19 条
关键词:javascript ajax
[ 阅读字体大小: ]

好不容易有些空余时间,便拿来写自己的CSS选择器引擎了,这个CSS选择器引擎的目标只有三个:

  • 速度要快
  • 代码要精简
  • 要支持CSS3的选择器。

希望通过这个,能够真正理解那些牛逼的框架中的一部分,比如jQuery,Mootools,YUI等等。花了接近三个星期的时间,大重构了三遍,从最开始的速度极低到现在的极速,每一次都是大换血。在这个过程中,我看到了那些大师写代码的境界,即使我完成了这样一个东西,代码依然很难看。

大家可能看完性能测试才会有兴趣,下图是一个较全的性能测试结果,大家可以在这里测试,大家可以自己跑一跑看(由于加载的东西较多,请耐心等待一会儿再点start按钮)。

代码量目前还没达到我满意的程度,不过已经足够小了,Gzip之后仅仅只有2KB(YUICompressor压缩之后为8.61K(win NTFS)),另外,针对Firefox 3, Opera 9性能还有很大的提升空间,因为我没有使用document.getElementsByClassName。但是这些优化在我看来不再是必要的,因为Firefox的用户应该会很快升级到Firefox 3.5,Opera 10也会很快变成正式版,它们都有本地方法querySelectorAll,所以只要选择器引擎在IE6和IE7下的性能达到最高就可以了,其他的浏览器都有本地方法querySelectorAll了。

在写这个选择器引擎的过程中,更进一步了解了js性能优化的更多方法。

另外,人力有限,此选择器引擎未经过足够完整的案例测试,如果有谁有兴趣帮忙测试者,可以和我联系向我索要源代码,等稳定性达到一定程度后会全面开放源代码。

Related articles 您可能对这些文章也感兴趣:
Related comments 与该文相关的评论:(我也想说几句)
引用这个评论  mengdasheng 于 12/24/2009 7:17:01 AM 发表评论: 

也给我研究研究mengdasheng@126.com,谢谢。

也给我研究研究mengdasheng@126.com,谢谢。
引用这个评论  tangbin 于 12/11/2009 2:45:13 AM 发表评论: 

还可以进一步压缩到5.12KB.愿楼主分享源代码:admin[question]planeart.cn

国外有个叫mini的选择器,只有1.5kb,后来国内有个人借鉴了把它弄成jquery式的框架——lhgcore.js

还可以进一步压缩到5.12KB.愿楼主分享源代码:admin[question]planeart.cn 国外有个叫mini的选择器,只有1.5kb,后来国内有个人借鉴了把它弄成jquery式的框架——lhgcore.js
引用这个评论  infinte 于 11/2/2009 7:31:52 AM 发表评论: 

infinte@yahoo.cn

谢啦~同时给自己的引擎platina吸收点养分。

infinte@yahoo.cn 谢啦~同时给自己的引擎platina吸收点养分。
引用这个评论  ce 于 10/29/2009 7:46:14 PM 发表评论: 

cloudend@gmail.com

麻烦发一份,研究下。

cloudend@gmail.com 麻烦发一份,研究下。
引用这个评论  corrie 于 9/27/2009 9:43:33 PM 发表评论: 

关注。。。

hfcorriez@gmail.com

关注。。。 hfcorriez@gmail.com
引用这个评论  argb 于 9/21/2009 12:53:24 AM 发表评论: 

argb@live.cn 希望学习源码 帮助测试

argb@live.cn 希望学习源码 帮助测试
引用这个评论  argb 于 9/21/2009 12:52:15 AM 发表评论: 

ddddddddddddddddddd

ddddddddddddddddddd
引用这个评论  白菜 于 9/11/2009 9:14:31 PM 发表评论: 

cisky#126.com,请也发给我一份,谢谢!

cisky#126.com,请也发给我一份,谢谢!
引用这个评论  白菜 于 9/11/2009 9:13:34 PM 发表评论: 

cisky6.com,请也发给我一份,谢谢!

cisky6.com,请也发给我一份,谢谢!
引用这个评论  白菜 于 9/11/2009 9:13:27 PM 发表评论: 

cisky6.com,请也发给我一份,谢谢!

cisky6.com,请也发给我一份,谢谢!
Add a comment 我来说两句: 
禁止表情
禁止UBB
禁止图片
识别链接
识别关键字
表  情
arrow
用户名:   密码:  (匿名可不写) 同时注册?
验证码:   看不清?换个图片  看不清楚?换个图片

 
Copyright © 2005-2008,Fdream All Rights Reserved
Processed in 0.8750168 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号