全新极速CSS选择器引擎whiz
作者:Fdream 来源:Fdream博客 时间:2009-08-30 15:48:00
好不容易有些空余时间,便拿来写自己的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性能优化的更多方法。
另外,人力有限,此选择器引擎未经过足够完整的案例测试,如果有谁有兴趣帮忙测试者,可以和我联系向我索要源代码,等稳定性达到一定程度后会全面开放源代码。
标签:选择器,css,ajax,JavaScript
0
投稿
猜你喜欢
[译]在线广告及其在网页设计中的重要性
2009-02-06 13:36:00
Python标准库之随机数 (math包、random包)介绍
2021-09-26 11:57:08
Typora+PicGo+GitHub实现md自带图床效果
2023-05-24 23:02:24
python复制文件代码实现
2022-08-29 09:28:11
Python使用函数默认值实现函数静态变量的方法
2023-03-11 16:54:46
PyTorch搭建多项式回归模型(三)
2022-09-04 00:43:49
Python读取实时数据流示例
2023-09-11 14:20:00
在PyCharm下使用 ipython 交互式编程的方法
2021-05-06 11:12:01
python使用json序列化datetime类型实例解析
2021-03-03 05:33:40
Python filter()及reduce()函数使用方法解析
2022-09-05 07:01:59
python中利用h5py模块读取h5文件中的主键方法
2022-07-26 12:02:36
详解Python的lambda函数用法
2023-09-22 11:33:19
torch 中各种图像格式转换的实现方法
2021-04-17 08:08:13
返回首页的链接地址写法
2008-10-22 13:38:00
php安全攻防利用文件上传漏洞与绕过技巧详解
2023-07-23 12:08:06
python使用urllib2提交http post请求的方法
2023-11-24 19:35:53
PHP实现的AES加密、解密封装类与用法示例
2023-07-23 12:56:45
网易2016研发工程师编程题 奖学金(python)
2021-11-21 19:37:54
Prometheus和NodeExporter安装监控数据说明
2022-09-22 00:55:40
asp使用XMLHTTP下载远程数据输出到浏览器
2007-11-04 10:34:00