代码之家  ›  专栏  ›  技术社区  ›  Phil.Wheeler

jQuery性能调优:上下文总是重要的吗?

  •  1
  • Phil.Wheeler  · 技术社区  · 14 年前

    有人问我一个主题的两个变体之间是否有区别,我真的不知道答案。

    $("table").each(function(){
        $("td", this).live("hover", function(){
            $(this).toggleClass("hover");
        });
    });
    
    $("table td").each(function(){
        $(this).live("hover", function(){
            $(this).toggleClass("hover");
        });
    });
    

    3 回复  |  直到 14 年前
        1
  •  5
  •   Kris van der Mast    14 年前

    测量

        2
  •  2
  •   Frunsi    14 年前

    正如其他人所说的,分析很重要,测试它,但是可能稍微快一点的变化是:

    $("td").live("hover", function(){
        $(this).toggleClass("hover");
    });
    

    ;-)

        3
  •  0
  •   Damovisa    14 年前

    正如XIII所说,测量可能是得到一个好答案的唯一方法。

    以下是一些评论:

    • 所有浏览器都实现了getElementByTagName和getElementById。这意味着,按标记或按Id选择元素的速度可能始终快于按类选择(例如)。显然,在这种情况下,您只能选择按标记。

    • 猜测 第一种选择是减少资源消耗。