JQ3.1 文档下载地址:https://pan.baidu.com/s/1c2vMQdy

一、注意定义jQuery变量的时候添加var关键字

  这个不仅仅是JQ,在JS中都是必须的

二、如果有多个变量可以使用一个var

  eg:var index=0,$main=$(".main");

三、定义jQuery变量是添加$符号

  eg:var $main=$(".main");利于代码的阅读性

四、DOM操作请务必记住缓存(cache)

  DOM操作是非常耗费资源和性能的,一般大部分人喜欢直接这样:

  $(".main").html("结束");

  $(".main").show();

  更好的是:

  var $main=$(".main");

  再去操作

五、使用链式操作

  上面的可以更简化:

  var $main=$(".main");

  $main.html("结束").show();

六、精简jQuery代码

  尽量把一些代码整合到一起,如下面

  $btn.click(function(){

    $main.css('width','80%');

    $main.css('display','block');

  });

  应该这样:

  

  $btn.click(function(){

    $main.css({

      "width":"80%",

      "display":"block"

    })

  });

七、避免使用全局类型的选择器

  请勿如下方式书写:$('.something> *');
  这样书写更好:$('.something').children();

八、不要叠加多个ID

  请勿如下书写:$('#something#children');
  这样就够了:$('#children');

九、多用逻辑判断||或者&&来提速

  请勿如下书写:

  if(!$something) {
      $something = $('#something ');
  }

  这样书写性能更好:

  $something=$something|| $('#something');

十、尽量使用更少的代码

  与其这样书写:if(string.length> 0){..}
  不如这样书写:if(string.length){..}

十一、尽量使用.on方法

  如果你使用比较新版本的jQuery类库的话,请使用.on,其它任何方法都是最终使用.on来实现的。

十二、尽量使用最新版本的jQuery

  最新版本的jQuery拥有更好的性能,但是最新的版本可能不支持ie6/7/8,所以大家需要自己针对实际情况选择。

十三、尽量使用原生的Javascript

  如果使用原生的Javascript也可以实现jQuery提供的功能的话,推荐使用原生的javascript来实现。

  eg:for in

十四、总是从#id选择器来继承

  这是jQuery选择器的一条黄金法则。jQuery选择一个元素最快的方法就是用ID来选择了。

  或者从ID选择器继承来选择多个元素:

  eg:$('#main p').hide();

十五、在class前面使用tag

  jQuery中第二快的选择器就是tag选择器(如$(‘head')),因为它和直接来自于原生的Javascript方法         

  getElementByTagName()。所以最好总是用tag来修饰class(并且不要忘了就近的ID)

  jQuery中class选择器是最慢的,因为在IE浏览器下它会遍历所有的DOM节点。尽量避免使用class选择器。也不要用tag来修饰ID。下面的例子会遍历所有的div元素来查找id为'content'的那个节点

十六、使用子查询

  将父对象缓存起来以备将来的使用

十七、 优化选择器以适用Sizzle的“从右至左”模型

  自版本1.3之后,jQuery采用了Sizzle库,与之前的版本在选择器引擎上的表现形式有很大的不同。它用“从左至右”的模型代替了“从右至左”的模型。确保最右的选择器具体些,而左边的选择器选择范围较宽泛些:

  var $linkContacts = $('.contact-links div.side-wrapper');

十八、 采用find(),而不使用上下文查找

  .find()函数的确快些。但是如果一个页面有许多DOM节点时,需要来回查找时,可能需要更多时间:

  var $divs = $('#pageBody').find('.testdiv');

  

二十、 缓存jQuery对象

  将你经常用的元素缓存起来:

  eg:

  var $header = $('#header');
  var $divs = header.find('div');
  var $forms = header.find('form');

  当要进行DOM插入时,将所有元素封装成一个元素

二十一、直接的DOM操作很慢。尽可能少的去更改HTML结构。

  

var menu = '<ul id="menu">';
for (var i = 1; i < 100; i++) {
menu += '<li>' + i + '</li>';
}
menu += '</ul>';
$('#header').prepend(menu);
// 千万不要这样做:
$('#header').prepend('<ul id="menu"></ul>');
for (var i = 1; i < 100; i++) {
$('#menu').append('<li>' + i + '</li>');
}

二十二、 尽管jQuery不会抛出异常,但开发者也应该检查对象

  尽管jQuery不会抛出大量的异常给用户,但是开发者也不要依赖于此。jQuery通常会执行了一大堆没用的函数之后才确定一个对象是否存在。所以在对一个作一系列引用之前,应先检查一下这个对象存不存在。

二十三. 使用直接函数,而不要使用与与之等同的函数

  为了获得更好的性能,你应该使用直接函数如$.ajax(),而不要使用$.get(),$.getJSON(),$.post(),因为后面的几个将会调用$.ajax()。

二十四、 使用jQuery utility函数

  不要忘了简单实用的jQuery的utility函数。我最喜欢的是$.isFunction(), $isArray()和$.each()。

二十五、推迟到$(window).load

  有时候采用$(window).load()比$(document).ready()更快,因为后者不等所有的DOM元素都下载完之前执行。你应该在使用它之前测试它。

二十六、如果给15个以上的元素加样式时,直接给DOM元素添加style标签

  $('<style type="text/css"> div.class { color: red; }</style>')
.appendTo('head');

二十七、压缩成一个主JS文件,将下载次数保持到最少

jQuery性能优化的一些参考建议的更多相关文章

  1. jQuery性能优化的28个建议

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

  2. jquery性能优化的38个建议

    一.注意定义jQuery变量的时候添加var关键字 这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下: $loading = $('#loading'); ...

  3. 必看的 jQuery性能优化的38个建议

    一.注意定义jQuery变量的时候添加var关键字 这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下: $loading = $('#loading'); ...

  4. jQuery:jQuery性能优化28条建议

    http://www.xue5.com/WebDev/jQuery/671700.html 直在寻找有关jQuery性能优化方面的小窍门,能让我那臃肿的动态网页应用变得轻便些.找了很多文章后,我决定将 ...

  5. 28个jQuery性能优化的建议

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

  6. jquery性能优化的十种方法

    jquery性能优化的十种方法 有时候我们在书写jquery的时候,为了书写代码方便,往往忽略了程序执行过程中,给客户端带来的压力.随之而来的就是在某些低端浏览器或者低端电脑上运行速度缓慢,甚至无法运 ...

  7. jQuery性能优化指南(转载)

    现在jquery应用的越来越多, 有些同学在享受爽快淋漓coding时就将性能问题忽略了, 比如我. jquery虽在诸多的js类库中性能表现还算优秀, 但毕竟不是在用原生的javascript开发, ...

  8. jQuery 性能优化技巧

    原文地址:jQuery 性能优化技巧 博客地址:http://www.extlight.com 一.使用最新版本 jQuery 类库 二.合理使用选择器 # 推荐使用 $("#id" ...

  9. jQuery性能优化和技巧

    jQuery性能优化 ①使用最新版本的jQuery类库 ②使用合适的选择器 ③缓存对象 ④循环时的DOM操作 ⑤数组方式使用jQuery对象 ⑥事件代理 ⑦将你的代码转化成jQuery插件 ⑧使用jo ...

随机推荐

  1. C/C++ 的宏中#和##的作用和展开

    C/C++ 的宏中: (1) # 的功能是将其后面的宏参数进行字符串化操作,简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号. 也就是说: #define __TO_STRING_IM ...

  2. android启动画面隐藏状态栏全屏显示

    1.在根部局给一个id,然后直接设置就行了layout.setSystemUiVisibility(View.INVISIBLE); 状态栏就没有了. 2.如果你只是想改变状态栏颜色的也可以 //5. ...

  3. A - 饭卡

    电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...

  4. 【原创】【Android】揭秘 ART 细节 ---- Garbage collection

      背景 Dalvik :http://zh.wikipedia.org/wiki/Dalvik%E8%99%9A%E6%8B%9F%E6%9C%BA ART :http://source.andro ...

  5. [数据清洗]-Pandas 清洗“脏”数据(一)

    概要 准备工作 检查数据 处理缺失数据 添加默认值 删除不完整的行 删除不完整的列 规范化数据类型 必要的转换 重命名列名 保存结果 更多资源 Pandas 是 Python 中很流行的类库,使用它可 ...

  6. MySQL--CREATE INDEX在各版本的优化

    在MySQL 5.5版本中引入FIC(Fast index creation)特性,提升索引的创建速度. FCI 操作流程: (1)对表加共享S锁,允许其他会话读操作,但禁止写操作, (2)扫描Clu ...

  7. python 使用 sorted 对 列表嵌套元组的数据进行排序

    在开发的过程可能会遇到这么一个需求,存在一个列表嵌套元组的数据: data = [(1, 'a'),(2, 'b'),(5, 'c'),(3, 'd'),(4, 'e')] 需要将这个列表按照元组的第 ...

  8. JavaScript获取键盘事件

    JavaScript中: onkeydown 事件会在用户按下一个键盘按键时发生. onkeypress 事件会在键盘按键被按下并释放一个键时发生. onkeyup 事件会在键盘按键被松开时发生. 支 ...

  9. .NET手记-定义类和接口的扩展方法

    对于iOS开发者来说,使用扩展方法是家常便饭.因为有很多的类是有系统框架的定义的,我们不能修改或者不想修改他们的源码,但是我们又想要给他添加一些扩展方法来使用.这时定义扩展方法就是很有用的方式了,正如 ...

  10. RawConfigParser 与 ConfigParser ——Python的配件文件读取模块

    一般情况都是使用ConfigParser这个方法,但是当我们配置中有%(filename)s这种格式的配置的时候,可能会出现以下问题: configparser.InterpolationMissin ...