`
eric.zhang
  • 浏览: 124048 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jQuery性能优化

阅读更多
1.总是从ID选择器开始继承
<div id="content">   
 <form method="post" action="#">   
 <h2>交通信号灯</h2>   
 <ul id="traffic_light">   
 <li><input type="radio" class="on" name="light" value="red" /> 红色</li>   
 <li><input type="radio" class="off" name="light" value="yellow" /> 黄色</li>   
 <li><input type="radio" class="off" name="light" value="green" /> 绿色</li>    
</ul> <input class="button" id="traffic_button" type="submit" value="Go" />   
 </form>   
 </div>  

如果采用下面的选择器,那么效率是低效的。
var traffic_button = $("#content .button");
因为button已经有ID了,我们可以直接使用ID选择器。如下所示
var traffic_button = $("#traffic_button"); 
这只是对于单一的元素来讲。如果你需要选择多个元素,这必然会涉及到 DOM遍历和循环,为了提高性能,建议从最近的ID开始继承。如下所示:
var traffic_lights = $("#traffic_light input"); 

2.在class前使用tag
在jQuery中第二快的选择器是tag(标签)选择器( 比如:$("head") )。跟ID选择器累时,因为它来自原生的getElementsByTagName()方法。继续看刚才那段HTML代码:
<div id="content"> 
 <form method="post" action="#"> <h2>交通信号灯</h2> 
 <ul id="traffic_light"> 
 <li><input type="radio" class="on" name="light" value="red" /> 红色</li> 
 <li><input type="radio" class="off" name="light" value="yellow" /> 黄色</li> 
 <li><input type="radio" class="off" name="light" value="green" /> 绿色</li> 
 </ul>  
<input class="button" id="traffic_button" type="submit" value="Go" /> 
 </form>  
</div> 

比如需要选择红绿单选框,那么可以使用一个tag name来限制(修饰)class ,如下所示:
var active_light = $("input.on"); 

当然也可以结合 就近的ID,如下所示:

var active_light = $("#traffic_light input.on");  
在使用tag来修饰class的时候,我们需要注意以下几点:
(1)不要使用tag来修饰ID,如下所示:
var content = $("div#content");   
这样一来,选择器会先遍历所有的div元素,然后匹配#content。
(2)不要画蛇添足的使用ID来修饰ID,如下所示:
var traffic_light = $("#content #traffic_light"); 

.将jQuery对象缓存起来

  把jQuery对象缓存起来就是要告诉我们 要养成将jQuery对象缓存进变量的习惯。下面是一个jQuery新手写的一段代码:

   
$("#traffic_light input.on").bind("click", function(){ ... }); 
  $("#traffic_light input.on").css("border", "1px dashed yellow"); 
  $("#traffic_light input.on").css("background-color", "orange"); 
  $("#traffic_light input.on").fadeIn("slow"); 



但切记不要这么做。我们应该先将对象缓存进一个变量然后再操作,如下所示:
  var $active_light = $("#traffic_light input.on"); 
  $active_light.bind("click", function(){ ... }); 
  $active_light.css("border", "1px dashed yellow");  
  $active_light.css("background-color", "orange"); 
  $active_light.fadeIn("slow"); 


4.尽量使用ID代替Class
前面性能优化已经说过,ID选择器的速度是最快的。所以在HTML代码中,能使用ID的尽量使用ID来代替class。
5.慎用 .live()方法(应该说尽量不要使用)
这是jQuery1.3.1版本之后增加的方法,这个方法的功能就是为 新增的DOM元素 动态绑定事件。但对于效率来说,这个方法比较占用资源。所以请尽量不要使用它。
分享到:
评论

相关推荐

    jQuery性能优化(转)

    jQuery性能优化(转)jQuery性能优化(转)jQuery性能优化(转)jQuery性能优化(转)jQuery性能优化(转)

    Jquery性能优化指南

    Jquery性能优化指南,web前端开发中,写出更高质量的代码

    jQuery性能优化指南.pdf

    jQuery性能优化指南.pdf

    JQuery性能优化指南

    JQuery性能优化 项目实践经验总结,大幅提升jquery性能

    jQuery性能优化的38个建议【技术文档】

    jQuery性能优化的38个建议,doc格式文档。供大家一起共同分享学习。

    jQuery性能优化指南

    jQuery性能优化指南,相信你也有你的idea,请共享出来吧。

    jQuery性能优化指南97-2003doc

    JQuery优化指南JQuery优化指南JQuery优化指南JQuery优化指南JQuery优化指南JQuery优化指南JQuery优化指南JQuery优化指南JQuery优化指南JQuery优化指南

    jquery 性能优化 from 蓝色理想

    总是从ID选择器开始继承 在class前使用tag 将jquery对象缓存起来 掌握强大的链式操作 使用子查询 对直接的DOM操作进行限制 冒泡 消除无效查询 推迟到 $(window).load 压缩js 全面掌握jquery库

    jquery性能优化

    该文档提供了一些如何优化jquery的方法,大家不防看看

    jQuery性能优化建议.doc

    选择合适的选择器提升jQuery的性能,在jQuery中最快的选择器是ID选择器,第二快的选择器是tag(标签)选择器

    JQuery性能优化的几点建议

    针对jquery性能优化这个主题,想必大家都有所了解。下面是我搜集点一点资料关于jquery性能优化,大家可以参考参考。 一、选择器性能优化建议  1. 总是从#id选择器来继承:这是jQuery选择器的一条黄金法则。jQuery...

    jquery性能优化高级技巧

    jquery性能优化高级技巧,下面主要从七个方面对jquery性能优化做介绍: 1.通过CDN(Content Delivery Network)引入jQuery库 2.减少DOM操作 3.适当使用原生JS 4.选择器优化 5.缓存jQuery对象 6.定义一个可以...

    Jquery性能优化详解

    寻寻觅觅,觅觅寻寻终于找到了一些关于jquery性能优化的文章,小编果断收藏当然不能忘了加上自己的一些总结及理解。 首先,之前文章中的jquery链式操作就是jquery性能优化方式中的一种,具体实现及优势在这里就不...

    jQuery性能优化28条建议你值得借鉴

    jQuery性能优化28条建议 一直在寻找有关jQuery性能优化方面的小窍门,能让我那臃肿的动态网页应用变得轻便些。找了很多文章后,我决定将最好最常用的一些优化性能的建议列出来。我也做了一个jQuery性能优化的简明...

    jQuery性能优化技巧分析

    本文较为详细分析了jQuery性能优化技巧。分享给大家供大家参考。具体分析如下: 一、使用最新版本的jQuery类库 jQuery新版本会较上个版本进行Bug修复和一些优化,不过需要注意的是,在更换版本之后,不要忘记测试你...

Global site tag (gtag.js) - Google Analytics