- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Be specific on the right-hand side of your selector, and less specific on the left.
// Unoptimized:
$( "div.data .gonzalez" );
// Optimized:
$( ".data td.gonzalez" );
我理解左侧的部分,但是具体到右侧尺寸的部分呢?这在现代浏览器上有多真实?据我所知,Sizzle 引擎并未在现代浏览器上使用。让我们将“未优化”的示例修改为此,以包括我们需要通过删除 div
在右侧“具体”的事实:
// Unoptimized modification:
$( ".data .gonzalez" );
对于我们的“优化”示例(对于现代浏览器):
.data
上调用 queryselectorall
td
上的 getElementsByTagName
。queryselectorall
获取 .gonzales
对比我们的“未优化修改”示例:
.data
上调用 queryselectorall
queryselectorall
获取 .gonzales
基本上,我们会跳过第 2 步。所以不会:
$( ".data .gonzalez" );
跑得比:
$( ".data td.gonzalez" );
让“具体选择器的右侧尺寸”这一原则对于现代浏览器来说已经过时了吗?
最佳答案
使用此 HTML:
<div class="data">
<table>
<tr>
<td class="gonzalez">test1</td>
<td>test2</td>
<td class="gonzalez">test3</td>
</tr>
</table>
</div>
Firefox 43:
$("div.data .gonzalez");
、$(".data td.gonzalez");
和 $(".data . gonzalez");
相等(+/- 84866 次操作/秒)。
Chrome 47:
$(".data .gonzalez");
是最快的(+/- 166496 次操作/秒)。
$("div.data .gonzalez");
和 $(".data td.gonzalez");
有点慢(+/- 163243 操作)/秒)。
IE 11:
$(".data .gonzalez");
是最快的(+/- 55015 次操作/秒)。
$("div.data .gonzalez");
和 $(".data td.gonzalez");
有点慢(+/- 42490 操作)/秒)
歌剧 34:
$(".data .gonzalez");
和 $(".data td.gonzalez");
是最快的(+/- 148887 次操作/秒) )。
$("div.data .gonzalez");
有点慢(+/- 135785 次操作/秒)
Safari 5:
$("div.data .gonzalez");
、$(".data td.gonzalez");
和 $(".data . gonzalez");
相等(+/- 63560 次操作/秒)。
我在这里创建了一个测试:http://jsperf.com/compare-selector
关于jquery - 选择器 : Be specific on right-hand side?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34923710/
我是一名优秀的程序员,十分优秀!