jQuery Selector的最佳性能

Mat*_*rym 7 jquery jquery-selectors

这将获取并存储特定链接的背景颜色:

var origColor = $("ul.relatedAlbums li a").css("background-color");
Run Code Online (Sandbox Code Playgroud)

但是有很多这样的链接,我觉得这是无效的.我想有一种方法可以告诉选择器查询在第一次匹配后停止,从而节省处理时间.这就是我想象的方式:

var origColor = $("ul.relatedAlbums li a:first").css("background-color");
Run Code Online (Sandbox Code Playgroud)

这是正确/有效的方式吗?人们说使用css伪类很慢 - 但我不确定这是否适用.这只是具有相同的语法,是吗?

Anu*_*rag 9

虽然听起来很奇怪,但我在Safari和Firefox上的"a:first"速度更快,而Chrome和Opera在这些测试中的速度更慢.但是,这些结果是在页面上的近12,000个链接,所以这里或那里的毫秒不值得拉毛.

苹果浏览器

替代文字http://tinyurl.com/27polne

火狐

替代文字http://tinyurl.com/2ay56yr

替代文字http://tinyurl.com/248nurm

歌剧

替代文字http://tinyurl.com/254unwc


要真正优化此功能,您永远不应选择所有链接.为第一个链接分配唯一ID,并仅访问该链接.这是一个搜索单个元素的新测试,它会使其他技术不成比例.毋庸置疑,这显然会非常快,但这实际上只是比较快多少.

好吧,我无法抗拒从1.0天开始添加jQuery 样式的 性能 数字 :)

Safari(快112,000%)

替代文字http://tinyurl.com/2b2w2fc

Firefox(快30,000%)

替代文字http://tinyurl.com/25xjzs4

Chrome(快24,000%)

替代文字http://tinyurl.com/28w9fgq

Opera(快38,000%)

替代文字http://tinyurl.com/27lsz2u

建立:

  • 操作系统:OS X 10.5.8
  • Opera:10.10,build 6795
  • Chrome:5.0.375.70
  • Safari:4.0.5(5531.22.7)
  • Firefox:3.6.4


Ram*_*No5 5

您不需要,:first因为css方法只查看匹配元素集中第一个元素的属性.

http://api.jquery.com/css/
css(propertyName)

获取匹配元素集中第一个元素的样式属性的值.