在jQuery中执行时,哪些行更有效(CPU /内存)?

时间:2011-05-17 01:31:59

标签: jquery performance memory-management

我有两个场景。在每个场景中,告诉我哪个版本的相同内容更有效(例如使用更少的CPU或内存):

第一个场景:

/*version 1*/
    $('body').append('#something');
/*version 2*/
    $('#something').insertAfter('body > *:last-child');

第二个场景:

/*version 1*/
    $('#something').method1();
    $('#something').method2();
    $('#something').method3();
/*version 2*/
    var $reference = $('#something');
    $reference.method1();
    $reference.method2();
    $reference.method3();

那么在每个scenerio中哪个版本效率更高?

3 个答案:

答案 0 :(得分:3)

这可能不是您正在寻找的答案,但是......

在宏观的计划中,差异将是如此难以衡量,以至于它并不重要。只需专注于编写干净,简单且易于维护的代码。

答案 1 :(得分:3)

在第一种情况中,第一种情况更有效,因为$("#someid")最终等同于document.getElementById调用,这是对本机代码的调用。与类选择器相比,Id选择器相当便宜。拨打$('body > *:last-child')对SizzleJS的调用会更加复杂。

在第二种情况下,第二种情况更有效率,因为您避免再对document.getElementById进行两次调用,而只是预先声明您的对象。

答案 2 :(得分:2)

$('#something').method1().method2().method3();

除非您打算重复使用该对象,否则请执行

var $ref = $('#ref');
$ref.method1().method2().method3();