javascript - 这些 jQuery JavaScript 中哪一个具有更好的性能?

标签 javascript jquery

我有带标题的部分。单击标题会折叠并展开其下方的部分。出于样式目的,还会将类应用于或删除到 header 。这些部分和标题共有 9 个。

$('.header').click(function() {
        $(this).toggleClass('open');
        $(this).next().slideToggle();
});

我正在尝试提高移动设备的性能。我指的不是页面加载时间,而是动画的平滑度以及动画触发前触摸标题后的延迟。

我读到使用 ID 比使用类更快。下面的速度会快多少? (注意,需要重复 9 次,我显示了前 2 次)。我还假设使用 ID 比使用 .next() 遍历 DOM 更快,这会有多大区别?

$('#header1').click(function() {
        $(this).toggleClass('open');
        $('#section1').slideToggle();
});

$('#header2').click(function() {
        $(this).toggleClass('open');
        $('#section2').slideToggle();
});

注意,我知道它有点困难,但我想使用 jQuery 而不是普通的 JavaScript。无论如何,jQuery 库都将按照其在网站其他地方使用的方式加载。谢谢

最佳答案

这根本不重要。虽然 ID 查找确实是最快的,但现代浏览器已经优化了基于选择器的查找,因此所有这些查找都非常快,除非您执行需要迭代整个文档的操作(例如 [someattribute] 选择器) .

但是,$('.header') 可以让您避免重复代码,因此是正确的选择。除此之外,它更具可读性 - 在第二个示例中,如果不查看 DOM,您甚至不知道它影响的元素在哪里。

所以,不要尝试 optimize what doesn't need to be optimized ,保持你的代码干净且可维护!

关于javascript - 这些 jQuery JavaScript 中哪一个具有更好的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10446480/

相关文章:

javascript - 如何获取数组内部的数组名称?

javascript - 重新绘制 AmStockChart

javascript - 如果名称和日期匹配两个 API JSON 数据,如何求和?

javascript - 在jquery中检查具有多个值的变量

javascript - 表单验证 - 输入意外结束

JavaScript : Undefined before an array

javascript - Jquery - 作为变量的响应文本

javascript - Angular jquery 插件 - 插件中未定义 jQuery

javascript - 如何检测 Angular 中是否填充了文件输入?

javascript - Rails 5 - Rails-ujs 已经加载