`
hackwaly
  • 浏览: 8450 次
  • 性别: 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

相关推荐

    Wi-Fi-Data-Elements-Specification-v2.1

    Wi-Fi_Data_Elements_Specification_v2.1

    Divelements Navisight v1.1 特别版(Net组件)

    Divelements Navisight v1.1 特别版就是这样一款专为.NET开发者设计的强大导航条与工具栏控件,它为软件界面的构建提供了丰富的可能性。 Navisight是一款精心设计的用户界面(UI)组件,它的核心功能在于提供高度可...

    phpQuery-0.9.5.386

    1. **选择器引擎**:phpQuery的核心功能之一是其强大的选择器引擎,它支持CSS1到CSS3的选择器,包括类选择器、ID选择器、属性选择器、伪类等,使得开发者可以精准地定位到页面中的任何元素。 2. **DOM操作**:如同...

    NIS-Elements Viewer V4.20图像分析软件.zip

    NIS-Elements Viewer图像软件分析平台,安装后可打开尼康旗下显微镜类仪器的照片原始文件格式,即DN2格式,可以进行修改和转存成TIFF。资源介绍:PC-NISE_4.2_Viewer_eng.pdf帮助文档NIS_Viewer_4.20_b972.exe...

    Premiere Elements 2023 v21.1.0.0.zip

    《Premiere Elements 2023 v21.1.0.0.zip——视频编辑的卓越工具》 Adobe Premiere Elements 2023是Adobe公司推出的一款强大的视频编辑软件,版本号v21.1.0.0代表了这一产品在功能和性能上的最新迭代。该软件以其...

    jsoup 选择器(一)常规选择器

    **jsoup选择器(一)常规选择器** jsoup是一个Java库,专门设计用于处理HTML文档,它提供了方便且强大的API来抓取和操作结构化数据。本篇将重点介绍jsoup中的基本选择器,帮助你高效地在HTML文档中找到所需的信息。...

    NIS-Elements AR快速手册.pdf

    尼康显微镜 NIS-Elements AR快速手册

    Elements.data gshop.data 编辑器

    例如,在一款游戏里,Elements.data可能存储角色属性、关卡设计、物品数据等,通过编辑器,玩家或开发者可以修改游戏规则,创建自定义内容。 "gshop.data"文件名暗示了它与游戏商店或购物系统有关,很可能存储了...

    Dynamic Elements Effect Pack v1.3

    在资源包中,最重要的组件无疑是"Dynamic Elements Effect Pack v1.3.unitypackage"文件。这是一个Unity3D的资源包文件,包含了所有预设的特效资源。通过导入这个文件,用户可以直接在Unity编辑器中使用这些特效,...

    Divelements Eyefinder v1.2.1 特别版(Net组件)

    Divelements Eyefinder v1.2.1 特别版是一款专为.NET开发者设计的强大界面控件集,它为创建具有互动性和用户体验优化的应用程序提供了丰富的工具。在.NET框架的支持下,这款组件库能够帮助开发人员轻松地实现复杂的...

    elements_v2 css框架

    同时,合理使用CSS选择器和避免使用复杂的选择器也有助于提高性能。 5. **浏览器兼容性**:考虑到不同用户可能使用的浏览器版本各异,`elements_v2`会尽可能地支持主流浏览器,包括Chrome、Firefox、Safari、Edge和...

    creo elements direct modeling教程

    Creo Elements Direct Modeling是一款3D计算机辅助设计(CAD)软件,它允许用户在没有任何历史记录或特征树约束的情况下直接对模型进行编辑。它特别适合产品设计和制造领域的工程师使用,因为它简化了复杂三维模型的...

    模仿jQury-简单的选择器封装

    本教程将引导你了解如何模仿jQuery实现一个简单的选择器封装,这对于初学者理解jQuery的设计哲学和工作原理是很有帮助的。 首先,我们需要明白jQuery的核心就是它的选择器功能。jQuery的选择器基于CSS选择器,允许...

    Divelements.SilverlightTools工具

    在实际开发中,Divelements.SilverlightTools还提供了一些辅助功能,如调试工具、性能分析器等,帮助开发者优化代码和提升应用性能。这些工具使得开发者能够在开发过程中更好地理解和优化应用的运行情况。 总结起来...

    Wi-Fi_Data_Elements_Specification_Package_Release_2_1 WiFi联盟官方文档

    该包包含了多个版本的JSON(JavaScript Object Notation)示例和模式文件,例如Data_Elements_SingleAP_Example_JSON_v1.2.json和Data_Elements_MultiAP_Example_JSON_v2.0.json,它们展示了如何在单个接入点...

    e-elements-readthedocs-io-zh-ego1-v2.2.pdf

    Ego1是一款基于Xilinx Artix-7 FPGA(XC7A35T-1CSG324C)的开发板,其设计集成了MicroBlaze微处理器系统(SoC),具备丰富的接口功能,包括VGA、DAC、USB、UART/JTAG、SRAM、PS2、SPI Flash、LED、DIP开关以及数字...

    MojoJS-Query:一个纯JavaScript CSS选择器引擎

    MojoJS-Query是一个纯JavaScript CSS选择器引擎。 它不仅支持完整CSS3选择器以及更多功能,并且易于扩展,而且具有非常简单,美观,易于理解的代码结构和实现思想。 发行版中的。 在发布更改。 显示了支持选择...

    C Elements of Style

    《C Elements of Style》是一本专注于C语言编程规范与风格指南的书籍,旨在帮助程序员编写出清晰、可读性好且易于维护的C程序。书中的内容覆盖了C语言的基础到高级主题,强调代码的优雅与高效。标签"C Elements of ...

    Creo Elements Pro 5.0中文版实例教程_张克义

    Creo Elements Pro 5.0是一款由PTC公司开发的先进机械设计软件,它是Creo产品系列中的一员,主要用于产品设计、分析、制造等环节。Creo Elements Pro 5.0 中文版是该软件的本地化版本,便于中文用户学习和使用。张...

    Dynamic_Elements_FX_Pack 插件 unity3d

    1. 导入插件:下载并解压"Dynamic_Elements_FX_Pack_1.2.unitypackage"后,在Unity编辑器中通过"Assets &gt; Import Package &gt; Custom Package"导入此unitypackage文件,即可将插件内容添加到项目中。 2. 预览与选择:...

Global site tag (gtag.js) - Google Analytics