suoyuesmile/suo-blog

jQuery最佳实践

suoyuesmile opened this issue · 1 comments

  1. 使用最新的jQuery:迭代快,性能提升也快

  2. 用对选择器

//最快的:id选择器和元素标签选择器
$('#id')
$('input')
//较慢的选择器:class选择器
$('.class')
//最慢的选择器:伪类和属性属性选择器
$(':hidden')
$('[attri=value]')
  1. 理解子与父的关系:父子关系使用不同,效率不同
  2. 不要过度使用jQuery 速度再快,性能不能与原生的相比
  3. 做好缓存:尽量少的重复使用选择器
  4. 使用链式写法:自动缓存,速度更快
  5. 事件委托处理:利用冒泡模式
$('td').on("click", function(){
  $(this).toggleClass("click");
});
//改写
$(document).on("click", "td", function(){
  $(this).toggleClass("click");
});
//取消
$(document).off("click", "td");
  1. 少改动DOM结构:改动DOM开销大
  2. 正确处理循环:能用原生就用原生
    10 少生成jQuery对象:jQuery对象会占不少资源
  3. 选择作用域最短方法
var a = 0;
function x(){
  var a += 1
}

//改写
function y(){
  var a = 0;
  a += 1;
}

12. 使用Pub/Sub模式管理事件:改写成事件触发形式
```js
function dosomething{
  doSomethingElse();
  doOneMoreThing();
}
//改写
function doSomething{
  $.trigger("DO_SOMETHING_DONE");
}
$(document).on("DO_SOMETHING_DONE", function(){
  doSomethingElse();
});