`

jQuery知识篇三(代码优化篇)

 
阅读更多

1、使用最佳选择器

 

     通常比较常用的选择器有以下几个:

 

        1.ID选择器 $("#id")

 

        2.标签选择器 $("td")

 

        3.类选择器 $(".target")

 

        4.属性选择器 $("td[target='target']")

 

        5.伪类选择器 $("td:hidden")

 

    结论

 

        1.原生方法是最快的方法,如果可能,尽量选择用原生

 

        2.性能顺序:ID选择器 > 标签选择器 > 类选择器 > 属性选择器 > 伪类选择器

 

        3.ID(getElementById)、标签选择器(getElementsByTagName)都有原生的方法对应,所以很快;类选择器在除了IE5-IE8之外的主流浏览器几乎都有原生方法(getElementsByClassName),为了兼顾IE6、7、8的性能,避免使用全局的类选择器;

 

        4.属性和伪类选择器非常慢,如非必要,尽量少使用伪类选择器和属性选择器

 

    最佳实践

 

        1.为模块中操作最频繁的元素和根元素设置id,然后缓存;

 

        2.对没有id的元素检索,尽量采用路径最短的祖先元素id作为默认的搜索范围,并采用纯类选择器或者标签选择器;

 

        3.尽量避免复杂的选择器

 

 

2、父类查询子类 最佳模式:$parent.find('.child') 或者$('.child', $('#parent'))

                        最差模式:$('#parent .child')  或者 $('#parent > .child')

 

 

要在DOM元素中存储数据,使用$.data 要比 选择器.data 要快

       var elem = $("#ajia");

       $.data( elem[0],key,value )     >     elem.data(key,value);

       //这类写法亦可:$.data('#id',key,value);

 

       原因:因为elem.data()方法是定义在jQuery函数的prototype对象上面的,而$.data()方法是定义jQuery函数上面的,调用的时候不从复杂的jQuery对象上调用,所以速度快得多

 

 

3、使用事件委托

 

    给一个列表中所有元素添加点击事件,传统的做法是得到这个列表的JQuery对象:$("li"),然后添加click事件:

 

     $("li").click(function(){})

 

    这种方法的在列表数量比较大的时候会有严重的性能问题,应该值得关注。

 

    可以使用JQuery的事件委托机制,能很大程度的降低添加事件监听的消耗和内存的消耗

 

    A:

    var list=$("li");//length>1    list.click(function(){  })

 

    B:

    $("ul").delegate("li","click",function(){})  //或者1.7版本以后的 on 事件

 

结论

 

    委托的性能优势是非常绝对的;

 

最佳实践

 

    对于需要同时给两个以上的同类型元素添加事件时,用方案B来代替A

 

 

4、大循环采用更高效的遍历方式

 

 JQuery提供了$.fn.each()和$.each()两个方法来实现对集合的遍历,除此之外,还可以采用JS原生的for循环、while等来实现迭代:

 

 var list=ul.find("li");

A:

  var i=list.length; 

  while(i--){  

     e=$(list[i])  

  }

B:

  list.each(function(){  

     e=$(this);  

  });

C:

  $.each(list,function(){     

     e=$(this);  

  });

 

结论

 

    总体上来说A>C>B

 

最佳实践

 

    追求极致性能,用原生方法;

 

    循环数量少的话,建议使用$.each(),比较稳定;

        

 

 

 

分享到:
评论

相关推荐

    JQuery 游戏 俄罗斯方块 代码

    在开发过程中,为了优化性能,开发者可能使用了一些jQuery的优化技巧,比如使用ID选择器而不是类选择器,减少DOM操作的频率,以及使用事件委托来处理大量的事件绑定等。同时,代码结构的清晰性和可维护性也是衡量...

    jQuery在线考试答题代码

    "jQuery在线考试答题代码"是利用jQuery技术实现的一种在线考试系统,旨在提供用户友好的界面和流畅的用户体验,让学生或考生能够方便地进行线上答题。 这个系统包含了多种题型,如单项选择题、多项选择题、判断题、...

    猎豹jQuery全屏焦点图代码

    为了更好地理解并运用这个代码,你需要具备基本的HTML、CSS和jQuery知识。HTML用于构建页面结构,CSS用于美化页面,而jQuery则用于增强页面交互性。如果你不熟悉这些技术,建议先学习它们的基础知识,然后再尝试理解...

    jQuery模拟select下拉框三级城市联动代码.zip

    这个"jQuery模拟select下拉框三级城市联动代码.zip"压缩包提供的就是一个使用jQuery库来实现这种效果的示例。这里我们将深入探讨相关知识点。 首先,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件...

    猎豹jQuery全屏焦点图代码,兼容主流浏览器

    通过以上知识点的解释,我们可以看到“猎豹jQuery全屏焦点图代码,兼容主流浏览器”是一个涵盖了前端基础、JavaScript高级特性和用户体验优化的综合项目,对于前端开发者来说是一个很好的学习和实践案例。

    jQuery攻略 源代码

    具体来说,jQuery攻略源代码可能包含以下知识点: 1. **选择器**: 学习如何使用jQuery选择器精准定位HTML元素,如ID选择器、类选择器、属性选择器等,以及如何组合使用它们。 2. **DOM操作**: 包括元素的添加、...

    jquery在线客服代码

    本篇文章将深入探讨jQuery在线客服代码的核心原理、实现方式以及如何根据需求调整皮肤风格。 **一、jQuery简介** jQuery是由John Resig于2006年创建的一个JavaScript库,它简化了HTML文档遍历、事件处理、动画和...

    jQuery权威指南-源代码

    其次详细讲解了jQuery的各种选择器、jQuery操作DOM的方法、jQuery中的事件与应用、jQuery中的动画和特效、Ajax在jQuery中的应用,以及各种常用的jQuery插件的使用方法和技巧...

    jQuery 常用代码段

    10. **版本兼容性**:jQuery有良好的浏览器兼容性,特别是对于老版本的IE,但随着现代浏览器的普及,推荐使用最新版本以利用最新的性能优化和API。 通过阅读“超实用的jQuery代码段.pdf”,你将能掌握这些基础和...

    Jquery图片切换代码

    "Jquery图片切换代码"是一个基于jQuery实现的图片轮播或切换效果的解决方案,尤其考虑到它能兼容IE和火狐浏览器,这意味着它在处理不同浏览器之间的差异性上做了优化。 首先,jQuery图片切换功能的核心在于通过事件...

    jquery程序代码包

    **jQuery程序代码包... jQuery基础知识 jQuery的核心理念是"Write Less, Do More",它通过简洁的API让JavaScript编程变得更加简单。要开始使用jQuery,首先需要在页面中引入jQuery库,通常通过以下方式: ```html ...

    网页模板——基于jQuery实现自动生成代码行号特效源码.zip

    网页模板——基于jQuery实现自动生成...它涉及到的知识点包括:jQuery库的使用、DOM操作、事件处理、CSS样式定制以及可能的性能优化策略。对于开发涉及大量代码展示的Web应用来说,这是一个值得参考和借鉴的实践案例。

    jQuery砸金蛋抽奖代码

    在这款代码中,主要涉及以下jQuery知识点: 1. **事件绑定**:jQuery提供了便捷的方式来绑定和处理用户交互事件,如点击事件(`click`)。砸金蛋抽奖通常会监听用户的点击动作,当用户点击金蛋时触发抽奖逻辑。 2....

    jquery实战+源代码

    通过实例解析,你可以了解如何利用jQuery来快速实现网页动态效果,提高用户体验,同时学习如何优化代码,确保页面性能。 源代码部分提供了书中各个章节实例的实践代码,这有助于读者动手操作,加深理解。这些代码...

    jQuery初学实例代码集

    9. **版本差异(Version Differences)**:代码集可能包含不同版本的jQuery实例,可以对比学习各版本之间的变化和优化。 10. **实践应用(Practical Applications)**:通过实际案例,如导航栏的动态效果、图片轮播...

    jQuery微信在线支付代码.zip

    在本文中,我们将深入探讨如何使用jQuery实现微信在线支付功能,以及这个过程涉及的关键知识点。首先,我们需要了解jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理、动画设计和Ajax交互,使得开发者能...

    jQuery砸金蛋抽奖代码.zip

    本篇将围绕一个基于jQuery实现的“砸金蛋”抽奖代码进行深入探讨。 jQuery,作为一款强大的JavaScript库,以其简洁的API和丰富的功能,简化了DOM操作,使得动态效果的实现变得更为容易。在"jQuery砸金蛋抽奖代码....

    jquery换一批代码

    以下是对"jquery换一批代码"这个知识点的详细说明: **一、jQuery简介** jQuery是由John Resig于2006年创建的一个JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务。jQuery的核心特性包括...

    jQuery添加产品分类菜单代码.zip

    下面我们将详细探讨这个jQuery代码实现的几个关键知识点: 1. **选择器与DOM操作**:jQuery提供了丰富的选择器,如ID选择器(#),类选择器(.), 元素选择器(例如div)等,用于选取HTML元素。在这个代码中,可能会用到...

    jQuery投票征名代码.zip

    该代码主要涉及以下jQuery知识点: 1. **选择器(Selectors)**:jQuery提供了丰富的选择器,如ID选择器("#id")、类选择器(".class")等,用于选取DOM元素。在这个项目中,很可能用到了类选择器来选取投票项,例如`....

Global site tag (gtag.js) - Google Analytics