84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
$('[data-key="vaule"]')
在jQuery中,此类方法相较于id、class在效率上有何区别?
光阴似箭催人老,日月如移越少年。
无论什么选择器,美刀这个函数都很重,都应该把结果暂存下来复用
关于选择器本身的速度,理论上来说现代浏览器的情况下(也就是委托给了querySelector的时候)应该是和.class相差无几,如果.class比[attr=val]要快,那应该是浏览器专门为它做了优化。因为本质是一样的(遍历dom树)
querySelector
.class
[attr=val]
其实这个问题应该是用数据说话的。我google了一下jsperf selector attribute vs cssclass果然第一条就是答案。贴个比较新的有点数据的revision
jsperf selector attribute vs cssclass
ID最快毫无疑问,然后就是浏览器确实对class做过优化,速度会比attribute快,但和ID没的比
最后要说的是,即使是用ID,美刀这个函数还是相当重,应该把结果暂存下来复用
自定义属性的属性选择器,效率应该会慢于id、class选择器。id选择器最快。
选择器使用data-自定义属性属于过滤了,应该是最慢的吧,反正肯定比基本选择器慢。
data-*属性目的不在于被作为选择器,而是在于存放数据到元素,然后可以用
data-*
elemente.dataset 取出来
无论什么选择器,美刀这个函数都很重,都应该把结果暂存下来复用
关于选择器本身的速度,理论上来说现代浏览器的情况下(也就是委托给了
querySelector
的时候)应该是和.class
相差无几,如果.class
比[attr=val]
要快,那应该是浏览器专门为它做了优化。因为本质是一样的(遍历dom树)其实这个问题应该是用数据说话的。我google了一下
jsperf selector attribute vs cssclass
果然第一条就是答案。贴个比较新的有点数据的revisionID最快毫无疑问,然后就是浏览器确实对class做过优化,速度会比attribute快,但和ID没的比
最后要说的是,即使是用ID,美刀这个函数还是相当重,应该把结果暂存下来复用
自定义属性的属性选择器,效率应该会慢于id、class选择器。id选择器最快。
选择器使用data-自定义属性属于过滤了,应该是最慢的吧,反正肯定比基本选择器慢。
data-*
属性目的不在于被作为选择器,而是在于存放数据到元素,然后可以用