【发布时间】:2016-02-26 22:31:15
【问题描述】:
在过去的 Web 开发中,我总是尝试在 javascript 中构造选择器时从 id 继承,之前是在 jQuery 中,最近使用 document.querySelector()/.querySelectorAll()。这是出于性能原因。我在这样的帖子中遵循了建议 (http://www.artzstudio.com/2009/04/jquery-performance-rules/#descend-from-id)。
例如:
$('#new-address-form input.address')
可能比
快很多$('.address')
即使页面上只有一个元素具有一类地址。如果 DOM 中有很多不同的类,在某些浏览器中这可能会快很多(我在看你的 IE
但是,从经验上看,今天似乎不再是这种情况了。任何人都可以向我指出一些文档或代码,对于开源浏览器,可以确认现代浏览器按类索引元素?
【问题讨论】:
-
$("#id").find(".class");应该更快
-
好吧,在IE8及以下版本中,没有document.getElementsByClassName,所以在IE9之前,过滤更多会更快。在 IE7 中也没有 querySelectorAll,所以情况更糟。显然,随着浏览器的更新和改进,它们的方法变得更加高效,每个 jQuery 版本都是如此。在这一点上,在遇到性能问题之前几乎没有理由考虑性能,而是采取更具可读性/可维护性的路线。
标签: javascript jquery google-chrome internet-explorer firefox