JQuery教学之性能优化


Posted in Javascript onMay 14, 2014

jQuery是一款非常优秀的javascript框架,当我们使用到jQuery后就再也不想回到javascript时冗长的代码,那么jQuery的优化就摆在了我们的面前。那么我们优化JQuery应该从那些方面入手呢?

        1、使用最新版本的jQuery

        新版本相对于旧版本会做性能上的改进,还有就是添加新功能。

        2、选择器的使用

        我们通常会使用id选择器、class选择器、元素选择器、伪类选择器和元素选择器。在使用时我的建议是最好使用id选择器,其次是class选择器>元素选择器>Element选择器>伪类选择器。

        说到选择器时,不可必选的要插上一句,在使用选择器查最好是从具有id的父元素开始逐级向下查找。

        3、不要过度的使用jQuery

        记住一句话原生的是最快的。jQuery是write less,do more(写的更少,做的更多)。

        4、做好缓存

        当时要重复使用一个节点是可以使用一个变量存放,在使用时再调用。避免重复获取节点,降低效率。

var inputSelect = $("#head .head_right input");
inputSelect.find("a");
inputSelect.find("i");

        5、使用链式操作

        jQuery的一大亮点,就是可以使用链式操作。

$("#content").find(".div").eq(2).html("Hello World");

        6、事件委托

        当需要多个同级元素执行一种类型的事件时,可以采用事件委托的方式。例:

<div id="content">
    <div><div>
    <div><div>
    <div><div>
    <div><div>
    <div><div>
<div>

    当每个class="div"的div都具备一个click事件的时候我们可以采取事件委托,

$("#content").on("click","div",function(){    
    $(this).css("color","#ff5500");
  });

        7、正确处理循环

         循环是一种较耗时的操作,如果可以使用选择器直接选中元素,就不要使用循环去一个个的遍历元素。

        Javascript的原生方法for和while,要比jQuery的each()快。所以应该优先使用原生的方法。

        8、减少JQuery对象的生成

        生成Query对象就会生成对应的属性和方法,比较占用资源。所以尽量减少jQuery对象的生成。

        9、变量的作用域

        当一个变量不需要 在多个函数调用时,应该把变量放在函数内,减少代码执行时查找代码的时间。

        10、将某些函数推迟到$(window).load执行

        $(document).ready确实好用,但是它可以再页面渲染时,其他元素还没有下载完成就执行。

        11、脚本的合并

        脚本都是一一被加载的,减少脚本数量也能提高效率。

        12、元素封装

        当给一个节点插入一个内容,可以先把内容进行封装,再插入。

var content = "";
$("#head").html(content);

        另外就是进行js文件的压缩。

        随着jQuery的不断被使用,越来越多的优化方法会被发现。

Javascript 相关文章推荐
js 日期转换成中文格式的函数
Jul 07 Javascript
jquery 子窗口操作父窗口的代码
Sep 21 Javascript
jQuery中的.bind()、.live()和.delegate()之间区别分析
Jun 08 Javascript
子页向父页传值示例
Nov 27 Javascript
9款2014最热门jQuery实用特效推荐
Dec 07 Javascript
纯JS实现本地图片预览的方法
Jul 31 Javascript
浅析Node.js实现HTTP文件下载
Aug 05 Javascript
JQuery获取鼠标进入和离开容器的方向
Dec 29 Javascript
layui实现table加载的示例代码
Aug 14 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
Aug 25 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
Jan 27 Javascript
jquery实现进度条状态展示
Mar 26 jQuery
鼠标左键单击冲突的问题解决方法(防止冒泡)
May 14 #Javascript
javascript 中that的含义示例介绍
May 14 #Javascript
table insertRow、deleteRow定义和用法总结
May 14 #Javascript
jQuery 中国省市两级联动选择附图
May 14 #Javascript
全面兼容的javascript时间格式化函数(比较实用)
May 14 #Javascript
js实现图片拖动改变顺序附图
May 13 #Javascript
javascript判断是否按回车键并解决浏览器之间的差异
May 13 #Javascript
You might like
php操作xml
2013/10/27 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
php之readdir函数用法实例
2014/11/13 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
JS中类或对象的定义说明
2014/03/10 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
实例分析javascript中的异步
2020/06/02 Javascript
基于JavaScript的数据结构队列动画实现示例解析
2020/08/06 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
python3获取当前文件的上一级目录实例
2018/04/26 Python
详解python 注释、变量、类型
2018/08/10 Python
Django框架模板介绍
2019/01/15 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
Python extract及contains方法代码实例
2020/09/11 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
学习考察心得体会
2014/09/04 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
2014年城管工作总结
2014/11/20 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript