javascript – jQuery data- * vs类选择器 – 性能?

我看到很多例子(包括最喜欢的Twitter的引导),其中各种API使用$(“[data-something]”),而不是通过类$(“.something”)选择

然而,我试图找到关于这两种不同选择器之间的性能的信息.我很惊讶许多性能测试发现,这些选择器在大多数现代浏览器上同样快,所以我决定做my own test

我现在真的很困惑,我不知道这是我的测试是错误的(不知何故?)还是我以前检查过的其他测试?

任何人都可以提供更多的信息,如果我在测试时做错了,或者这些测试正确,数据属性选择器实际上比常规类选择器慢得多?

谢谢

解决方法

使用属性选择器时,性能可能因浏览器中的querySelector支持而异. jQuery将回到一个内置的库(称为SizzleJS),这是很慢的.

对类名的选择会更快,因为它总是使用所有常见浏览器通常支持的getElementsByClassName.

我看到它的方式,类服务于数据属性不同的目的.类将“分类”元素,以便它们可以被正确地定型并创建结构.

数据属性正是:数据.有时您需要在元素中存储额外的数据.例如:

<table>
    <tr data-id="4" data-category="1">
        <td>Name</td>
        <td>Email</td>
    </tr>
</table>

请注意,由于相同的原因我没有使用常规的“id”属性.

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...