如何书写高质量jQuery代码(使用jquery性能问题)

2020-05-22 17:03:09易采站长站整理

var$loading = $(‘#loading’);

这里定义成这样的好处在于,你可以有效的提示自己或者其它阅读你代码的用户,这是一个jQuery的变量。

DOM操作请务必记住缓存(cache)

在jQuery代码开发中,我们常常需要操作DOM,DOM操作是非常消耗资源的一个过程,而往往很多人都喜欢这样使用jQuery:


$(‘#loading’).html(‘完毕’);
$(‘#loading’).fadeOut();

代码没有任何问题,你也可以正常运行出结果,但是这里注意你每次定义并且调用$(‘#loading’)的时候,都实际创建了一个新的变量,如果你需要重用的话,记住一定要定义到一个变量里,这样可以有效的缓存变量内容,如下:


var $loading = $(‘#loading’);
$loading.html(‘完毕’);$loading.fadeOut();

这样性能会更好。

使用链式操作

  上面那个例子,我们可以写的更简洁一些:


var $loading = $(‘#loading’);
$loading.html(‘完毕’).fadeOut();

精简jQuery代码

  尽量把一些代码都整合到一起,请勿这样编码:


// !!反面人物$button.click(function(){
    $target.css(‘width’,’50%’);
    $target.css(‘border’,’1px solid #202020′);
    $target.css(‘color’,’#fff’);
});

应该这样书写:


$button.click(function(){
    $target.css({‘width’:’50%’,’border’:’1px solid #202020′,’color’:’#fff’});
});

避免使用全局类型的选择器

  请勿如下方式书写:$(‘.something > *’);
  这样书写更好:$(‘.something’).children();

不要叠加多个ID

  请勿如下书写:$(‘#something #children’);
  这样就够了:$(‘#children’);

多用逻辑判断||或者&&来提速

  请勿如下书写:


if(!$something) {
    $something = $(‘#something ‘);
}

  这样书写性能更好:

$something= $something|| $(‘#something’);
 
 
尽量使用更少的代码

  与其这样书写:if(string.length > 0){..}

  不如这样书写:if(string.length){..}

尽量使用 .on方法
  如果你使用比较新版本的jQuery类库的话,请使用.on,其它任何方法都是最终使用.on来实现的。

  尽量使用最新版本的jQuery
  最新版本的jQuery拥有更好的性能,但是最新的版本可能不支持ie6/7/8,所以大家需要自己针对实际情况选择。