【问题标题】:jQuery speed optimisationjQuery速度优化
【发布时间】:2012-02-25 19:05:50
【问题描述】:

就一些困扰我一段时间的事情提出了一些建议。使用选项 1 或选项 2 性能更好吗?还是根本不重要?

  1. $('.class').removeClass("class");
  2. $('*').removeClass("class");

我问的原因是因为我经常使用此代码(或类似代码),并且我开始尝试尽可能优化我的代码。两者都有效,但哪个更好?

【问题讨论】:

  • 选项 1 更好,因为它只会搜索类名为 '.class' 的元素,而第二个选项将遍历所有元素。
  • 一般来说,详细的元素查找规则性能更好。所以$('*')$('.class') 慢于$('div.class')$('#aIDisBest')
  • @Ofcourse ,第二个很慢,因为它就像一个通配符搜索,之前只寻找那个特定的类

标签: jquery performance optimization


【解决方案1】:

有一个名为 jsperf.com 的网站,您可以在其中发布 javascript 测试。您创建了许多代码 sn-ps,它可以在一个网站上测试您的 sn-ps,它会告诉您哪个 sn-p 最快。

我已经为你准备了一个测试,只需安装 Java 并运行测试。选项 1 更好:)

http://jsperf.com/select-speed

【讨论】:

  • 谢谢你,我觉得这会更快,但我很高兴我现在问了,因为那个链接真的可以派上用场! :)
【解决方案2】:

正如@Sheikh Heera 在他的评论中提到的那样,第一个更好,但前提是您使用的浏览器具有对getElementsByClassName 的原生支持。

对于类选择器,jQuery 使用 JavaScript 的原生 getElementsByClassName() 函数,如果浏览器支持的话。

否则,这是极不可能的,它会是一样的......

【讨论】:

    【解决方案3】:

    我认为第一个更快。它针对特定的类(id 应该更快)。其中 * 以所有元素为目标。

    【讨论】:

      猜你喜欢
      • 2011-08-01
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      • 2020-01-19
      • 2020-01-09
      • 1970-01-01
      相关资源
      最近更新 更多