jquery选择器效率优化问题

jquery选择器效率优化问题

  jquery选择器固然强大,但是使用不当回导致效率问题;

1.要养成将jQuery对象缓存进变量的习惯

     //不好的写法
     $(‘#btn‘).bind("click",function() {});
     $(‘#btn‘).css("border","1px solid red");
     $("#btn").css("background-color","green");
     $("#btn").fadeIn("slow")
     //正确写法;
     var $obj=$("#btn");
     $obj.bind("click",function (){});
     $obj.css("border","1px solid red");
     $obj.css("background-color",‘green‘);
     $obj.fadeIn("slow");

     //为了区分普通的JavaScript对象和jQuery对象,可以在变量首字母前加上$符号。
   //上面代码可以使用jQuery的链式操作加以改善。如下所示:
     var $obj=$("#btn");
     $obj.bind("click",function (){})
     .css("border","1px solid red")
     .css("background-color",‘green‘)
     .fadeIn("slow");

2.能有id则用id

毫无疑问jq中最快的选择器是id选择器,因为它直接对应着我们的javascript的document.getElementsById();

HTML

<div id="outer">
    <div id="inner">
    <input type="text"  class="txt" />
    <input type="button" class="test" id="btn" value="click"  />
    </div>
</div>

js

   //不好的写法
    var obj=$("#outer .test");
    //直接获取就行了
    var obj=$("#btn");

    var obj=$("#inner input.txt")
    ////建议从最近的ID开始继承
    var obj=$(‘input.txt‘) 

    //不建议使用tag来修饰id 有种化蛇天足的感觉
    var obj=$("div#outer");
    //或者
    var obj=$("#outer#inner");

3.如果你打算在其他函数中使用jQuery对象,那么你必须把它们缓存到全局环境中

window.$obj={head:$(‘head‘),obj:$(‘#outer‘)};
    function do_something(){
      var script=document.createElement("script");
      $obj.head.append(script);
      $obj.obj.css("border","1px solid red");
    }
    //这里的基本思想是在内存中建立你确实想要的东西,然后更新DOM。
    //这并不是一个jQuery最佳实践,但必须进行有效的JavaScript操作 

    //不好的做法;
    for(var i=0;i<100;i++){
       $("#content").append(‘<span>index=‘+i+‘</span>‘);
    }
    //推荐写法;
    var html="";
    for(var i=0;i<100;i++){
        html+=‘<span>index=‘+i+‘</span>‘;
    }
    $(‘#content‘).append(html);
时间: 2024-08-01 04:46:36

jquery选择器效率优化问题的相关文章

jQuery 选择器效率

http://blog.csdn.net/cxl444905143/article/details/48808809 ID > Tag > Class ID 选择器是速度最快的,这主要是因为它使用 JavaScript 的内置函数 getElementById(): 其次是类型选择器,因为它使用 JavaScript 的内置函数 getElementsByTag(): 速度最慢的是 Class 选择器,其需要通过解析 HTML 文档树,并且需要在浏览器内核外递归,这种递归遍历是无法被优化的.

jQuery——选择器效率

N1:$('#box').find('p'):最快,直接了当的找到对应的节点对象: N2:$('p','#box'):注意不是$('p,#box')!!!,jQuery会按照从右往左的顺序解译执行,所以会选到id=‘box’内的所有p元素: N3:$('#box').children('p'); N4:$('#box>p'):这种情况会用Sizzle引擎从右往左依次处理,其中符号的识别处理过程无形中增加了处理时间:注:主要的匹配过程的核心是用正则表达式进行的 N5:$(‘#box p’): 一般

优化jQuery选择器

优化jQuery选择器 选择优化比以前更加重要,因为越来越多的浏览器实现了queryselectorall()并承担了将jQuery选择器转移到浏览器的责任.记住这些小技巧可以让你轻松突破学习选择器时的瓶颈. jQuery 扩展 如果可能的话,避免使用jQuery扩展选择器.这些扩展无法在性能让原生的queryselectorall() DOM提供的方法更有效,所以还是用jQuery提供的常规选择器吧. 1 2 3 4 5 // Slower (the zero-based :even sele

我自作聪明,擅自主张的优化了jQuery选择器。

</pre><pre name="code" class="javascript">闲了一会,写篇博客. 最近项目里面,我自作聪明,擅自主张的,自我感觉的优化了一下jQuery选择器.哈哈哈~~~~ ( ﹁ ﹁ ) 我这么想的: jQuery最底层采用getById getByTagName,2.0版本之后结合最近html5的API--getByClassName. 如果没有getByClassName.将进行所搜查找className选择器

jQuery的性能优化,你知道几条

我一直在寻找有关jQuery性能优化方面的小窍门,能让我那臃肿的动态网页应用变得轻便些.找了很多文章后,我决定将最好最常用的一些优化性能的建议列出来 ================================================================= 一.选择器性能优化建议 ================================================================= 1. 总是从#id选择器来继承 这是jQuery选择器的一条黄

jQuery 选择器和JavaScript 选择器的技巧与异常原因

jquery的选择器借鉴了css选择器,核心依然依靠JavaScript的getElementById()和getElementsByTagName()方法,但是他封装了2个方法,让jquery选择器变得简洁易用. 而且避免了易错问题. jquery选择器返回的永远是一个数组对象,如果没有找到指定的元素,就会返回一个空的数组, 所以判断一个jquery对象是否存在时,不能用如下语句 if($("tr")){ //code } 而应该用数组长度来判断,如下语句 if($("tr

jQuery选择器详解及实例---《转载》

选择器是jQuery最基础的东西,本文中列举的选择器基本上囊括了所有的jQuery选择器,也许各位通过这篇文章能够加深对jQuery选择器的理解,它们本身用法就非常简单,我更希望的是它能够提升个人编写jQuery代码的效率.本文配合截图.代码和简单的概括对所有jQuery选择器进行了介绍,也列举出了一些需要注意和区分的地方. 一.基本选择器 1. id选择器(指定id元素) 将id="one"的元素背景色设置为黑色.(id选择器返单个元素) $(document).ready(func

简单十招提高jQuery执行效率

1. 使用最新版本的jQuery jQuery的版本更新很快,你应该总是使用最新的版本.因为新版本会改进性能,还有很多新功能. 下面就来看看,不同版本的jQuery性能差异有多大.这里是三条最常见的jQuery选择语句: $('.elem') $('.elem', context) context.find('.elem') 我们用1.4.2.1.4.4.1.6.2三个版本的jQuery测试,看看浏览器在1秒内能够执行多少次.结果如下: 可以看到,1.6.2版本的运行次数,远远超过两个老版本.尤

使用jquery选择器大全的用法介绍

在jquery开发(http://www.maiziedu.com/course/python/303-2785/)当中,很多人都很在意选择器的问题,首先选择器是jQuery最基础的东西,也对获得页面元素变得更加容易.更加灵活,能减轻工程师的开发压力,本文主要加深对选择器的理解以及用法,帮助提升个人编写jQuery代码的效率.下面就一起看看对所有jQuery选择器的介绍,并且也列举出了一些需要注意和区分的地方. 一.基本选择器 1. id选择器(指定id元素) 将id="one"的元素