这是一篇关于介绍jQuery Sizzle选择器的文章,由我和obility共同完成。在文中,我们试图用自己的语言配以适量的代码向读者展现出Sizzle在处理选择符时的流程原理,以及末了以少许文字给你展示出如何借用Sizzle之手实现自定义选择器(也许更标准的叫法叫做过滤符)和它与YUI 选择器的大致比较。前序 
jQuery相比1.2的版本,在内部代码的构造上已经出现了巨大的变化,其之一便是模块的分发.我记得09年在jquery 9月开的一次大会上 john放出的一张ppt上 也指出了当前的jquery下一步目标,不仅仅是除了sizzle选择器的分离,届时core,attribute,css以及manipulation,包括event也都会独立成单独的js文件.(1.4的文件结构,其实已经分成单独的16个模块的组成)
随着jQuery被用来构建web app的场合愈来愈多,它的性能自然受到了大部分开发者的高度关注,它的内部实现机理又是如何,比如选择器的实现。
Sizzle,作为一个独立全新的选择器引擎,出现在jQuery 1.3版本之后,并被John Resig作为一个开源的项目,可以用于其他框架:Mool, Dojo,YUI等。
好了,现在来看为什么Sizzle选择器如此受欢迎,使它能够在常用dom匹配上都快于其他选择器而让这些框架们都垂青于它。概要 
一般选择器的匹配模式(包括jq1.2之前),都是一个顺序的思维方式,在需要递进式匹配时,比如$(‘div span’) 这样的匹配时,执行的操作都是先匹配页面中div然后再匹配它的节点下的span标签,之后返回结果。
Sizzle则采取了相反Right To Left的实现方式,先搜寻页面中所有的span标签,再其后的操作中才去判断它的父节点(包括父节点以上)是否为div,是则压入数组,否则pass,进入下一判断,最后返回该操作序列。
另外,在很多细节上也进行了优化。

解决方案 »

  1.   

    刚开始使用 jQuery   这个没用过 
      

  2.   

    进来学习学习,jQuery 没用过 
      

  3.   

    有区别吗?DIV和SPAN被搜寻有效率之分?
      

  4.   

    一个超越jquery的选择器引擎,纯js编写。
    在线测试:http://mojo-js.appspot.com/ 见真相
      

  5.   

    sizzle选择器的分离,届时core,attribute,css以及manipulation,包括event也都会独立成单独的js文件???????????????
      

  6.   

    标题:文字信息处理及编辑3000/月 本公司现承接一批商务旧书籍,文字手写资料,
    现须要从新整理成为电子文档,
    须招若干名有充足时间的资料整理员
    具体招聘事宜请发个人简历到我司邮箱或登陆公司网站了解详情 www.59791.com (请放心,本公司所有招聘职位不需要交纳任何费用)
    公司每天工资发放记录:http://www.59791.com/gongzi.htm
      

  7.   

    标题:文字信息处理及编辑3000/月 本公司现承接一批商务旧书籍,文字手写资料,
    现须要从新整理成为电子文档,
    须招若干名有充足时间的资料整理员
    具体招聘事宜请发个人简历到我司邮箱或登陆公司网站了解详情 www.59791.com (请放心,本公司所有招聘职位不需要交纳任何费用)
    公司每天工资发放记录:http://www.59791.com/gongzi.htm
      

  8.   

    我测试的没有jquery的好啊