全新极速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
  • asp之家 网络编程 m.aspxhome.com