`
hackwaly
  • 浏览: 8141 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Elements! v0.9 速度最快的选择器引擎

阅读更多

不知道大家有没有使用过jQuery等javascript框架.

里面的$函数通常都具有这样的功能, 传递一个CSS3规范的选择器就能获得选择器选择到的元素. 使代码更加简洁.

最近的浏览器都在提升javascript的执行效率, 独独IE却一直使用很慢的javascript引擎.

目前网络上已有的选择器引擎在IE下要比其他浏览器下慢上好几倍.
我写的Elements!框架, 目前完成了选择器部分. 使IE在选择器的速度上不落后于其他浏览器, 甚至超过了其他浏览器.

我在IE下执行全套的slickspeed测试, 比firefox下的得分还要高.
Elements!最大的优势就是速度, 在IE下, 速度可以超越其他引擎2至5倍. 而在其他浏览器下速度也是最快的.

为什么Elements!这么快?
主要有几点原因(根据重要性为先后顺序).

1, jit编译技术
2, inline优化

3, 良好的算法
3, Function.prototype.apply
4, 缓存技术

打开测试页面看看你的浏览器跑多快


IE7.0测试结果图


注意测试结果单元格有时候虽然是最快, 但是不是显示为黄绿色是因为有其他引擎出现了错误的结果(要么用时比正确的少,要么找到的结果比正确的多)


Elemens! 目前选用的license是Creative Comons License 3.0 BY-NC-SA

暂时保留商业使用的权利

 

分享到:
评论
7 楼 flysnowxf 2009-03-29  
有一bug,不知道现在是否解决了?
不能对同一个selector查询两次以上,否则从第二次开始获得的对象为undefined。
比如
    
<div>
    <div class="demo">
            <div id="cont" class="cont" title="cont"></div>
        </div>
    </div>
    <script type="text/javascript" src="Elements.js"></script>
    <script type="text/javascript">
        var element = document.getElementsBySelector("div[class=cont]")[0];
		// 第一次正常
		alert(element.title.charAt(0));

		var element = document.getElementsBySelector("div[class=cont]")[0];
		// 此时element为undefined
		alert(element.title.charAt(0));
    </script>
6 楼 jaytuzi 2009-01-14  
请详细解释一下javascript的jit编译技术!
谢谢!
5 楼 hackwaly 2008-12-31  
achun 写道
今天有时间学习了您的代码.
1, jit编译技术
2, inline优化
真的是至强法宝呀.
我打算使用您的这两项技术.当然代码自己重新写.
应该不存在版权问题吧?


当然没有版权问题, 这两个技术又不是我的专利, 我这个Elements实际只是抛砖引玉而已
CC License只是暂时使用的版本. 正式版本的时候License说不定会换.

不过由于除了IE之外的浏览器都加强了js的运行效率, jit和inline的效果已经不是很明显了.
4 楼 achun 2008-12-31  
今天有时间学习了您的代码.
1, jit编译技术
2, inline优化
真的是至强法宝呀.
我打算使用您的这两项技术.当然代码自己重新写.
应该不存在版权问题吧?
3 楼 hackwaly 2008-12-30  
joyfun 写道
测试了一下 chrome下 惨不忍睹 全是黑色的错误 ……
倒是Sizzle拿到了第二名
Peppy 0.1 Sizzle Elements EXT 2.2 Dojo 1.2.0 JQuery 1.2.6 MooTools 1.2.1 prototype.1.6.0.3 YUI 2.6.0
47 53 1 77 123 115 116 136 418

javne 写道
支持楼主,通过你提供的测试页面 速度确实很优秀,就是在GOOGLE浏览器里有问题


感谢你们的测试, 我会在下一个版本里加强其他浏览器的支持的.
目前我又找到一个在firefox下可以在速度上拖开其他引擎的地方.
2 楼 javne 2008-12-30  
支持楼主,通过你提供的测试页面 速度确实很优秀,就是在GOOGLE浏览器里有问题
1 楼 joyfun 2008-12-29  
测试了一下 chrome下 惨不忍睹 全是黑色的错误 ……
倒是Sizzle拿到了第二名
Peppy 0.1 Sizzle Elements EXT 2.2 Dojo 1.2.0 JQuery 1.2.6 MooTools 1.2.1 prototype.1.6.0.3 YUI 2.6.0
47 53 1 77 123 115 116 136 418

相关推荐

Global site tag (gtag.js) - Google Analytics