代码之家  ›  专栏  ›  技术社区  ›  Mutation Person

CSS和jQuery选择器速度

  •  10
  • Mutation Person  · 技术社区  · 14 年前

    在jQuery中,每当我遇到这样的情况时:

    $("div#MyDiv").....
    

    div 在前面 #MyDiv

    $("#MyDiv")....
    

    这是因为后者将直接连接到 document.getElementById <div> 首先是元素。

    我的问题是,同样的规则适用于CSS选择器吗?一、 e.而不是:

    div#MyDiv
    {
    }
    

    简单地拥有会更快吗?:

    #MyDiv
    {
    }
    

    (我意识到无论如何CSS选择器都非常快,所以实际上两者都不会有显著的区别。)

    非常感谢

    编辑

    3 回复  |  直到 14 年前
        1
  •  11
  •   T.J. Crowder    14 年前

    我想说的是 极不可能 它对现实世界有任何影响。理论上,是的,只需要少一张支票(因为 div#foo div 根据 the spec

    也就是说,我 总是 二楼 在HTML应用程序中。HTML只有一个ID类型属性( id 分区 footer ,例如),等等,当然还有 让您自己面对一个stoopid选择器实现,它无法识别它可以通过ID和 然后 看看是不是 分区 分区 这样的实现是否存在?可能,你永远不会知道。)除了一些边缘案件,它总是让我认为有人不太知道他们在做什么。

    所以对我来说,速度不是主要论点。毫无意义。;-)

        2
  •  2
  •   fcalderan fcalderan    14 年前

    是的,由于解析速度和浏览器不能检查元素是否也是 <div>

        3
  •  2
  •   BoltClock    14 年前

    根据 this Mozilla article ,这确实有区别,尽管只有一分钟。(注意,虽然本文讨论了XUL用户界面的样式,但是使用了Gecko布局引擎 二者都 用于呈现Firefox的用户界面及其加载的网页。)