一、合适的选择器

JQuery 选择器提供丰富的选择器来定位DOM元素,

基本选择器

#id、.class、element、*等;那他们哪个更高效呢?

第一选择:

$("#id")

第二选择:

$("p"),$("div")

第三选择(选择性使用) :

$(".class")

第四选择

$("[attribute =value"])

第五选择(伪选择器,其属于 JQuery 过滤选择器中的可见性过滤选择器)

$(":hidden")

PS:1、尽量选择Id选择器,

2、给选择器指定上下文

其类似于CSS选择器,CSS选择器中三大特性 --特殊性、继承、层叠中的特殊性:

1、对于选择器给定的各个ID属性值(#id):加上  0,1,0,0

2、对于选择器给定的各个类属性值(.class、属性选择、伪类如:visited、:link ) :  加上0,0,1,0

3、对于选择器给定的各个元素(element): 加上0,0,0,1

例子:html >body table tr[td="totals"] td ul > li 则为0,0,0,7+ 0,0,1,0 =  0,0,1,7;

li #answer 则为0,0,0,1 + 0,1,0,0 = 0,1,0,1

根据这种运算可以得出胜出规则:

比如:0,1,0,1 大于 0,0,1,7 ,则其特殊性越高。选择的优先级越高。

* 属于通配选择器,其是 0 特殊性

二、数组方式使用JQuery对象

在性能方面,建议使用for 或者 while 来处理,而不是$.each()

如:

$.each(array ,function (i)) {

array[i] = i ;

}

改为:

var array = new Array ();

for (var i = 0 ;i< array.length ;i++) {

array[i] = i;

}

三、事件代理

例子: 单击单元格,单元格变色

$('#table td").click(function()) {

$(this).css("backgroud","blue") ;

}

如果表格有100个td单元格,那么就绑定了100个事件,性能会很差。

可以使用事件代理:

$('#table").click(function(e)) {

var $clicked = $(e.target); // e.target 得到触发的目标元素

$clicked.css("backgroud","blue") ;

}

其只绑定一个事件,性能提高

四、join 拼接字符串

将数组转换为字符串

一般在长字符串时,这个性能提升才会明显

var array = [] ;

for(var i = 0 ; i< 100; i++){

array[i] = '<li>'+i+'</li>';

}

$("#list").html(array.join(' '));

可以联系Java中StringUtils 的Join(), 以及StringBulider,StringBuffer的用法比较使用。

五、使用原生的JS方法

常用判断一个多选框是否选中:

var $ck = $("#ck");

$ck.click(function()) {

if($ck.is(":checked")) {

alert("checked");

}

})

改为:

var $ck = $("#ck");

var  ck = $ck.get(0); // JQuery 对象转化为DOM对象,其有2种方式 JQuert.get(0)或者JQuery[0]

$ck.click(function()) {

if(ck.checked)) {

alert("checked");

}

})

六、尽量使用JQuery优雅的链式操作

其可以减少对象的随意创建,也可以创建一个对象到全局环境,让其他函数function调用。

JQuery 性能优化的更多相关文章

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

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

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

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

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

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

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

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

  5. jQuery 性能优化技巧

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

  6. jQuery性能优化和技巧

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

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

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

  8. jQuery性能优化(转)

    摘要:jQuery是我们经常使用的强大的JS类库,因此它的性能优化十分重要,下面就重几点来说明 原文作者:szyuxueliang    原文地址:http://www.cnblogs.com/yxl ...

  9. jQuery性能优化篇

    jQuery高级技巧——性能优化篇 阅读目录 通过CDN(Content Delivery Network)引入jQuery库 减少DOM操作 适当使用原生JS 选择器优化 缓存jQuery对象 定义 ...

  10. jQuery性能优化38建议---最引人注目的用户体验!

    一.需要注意的是的定义jQuery当变量被添加varkeyword 然而,这并不jQuery.整个javascript开发过程,所有需要注意,一定不要将其定义为下面的示例: $loading = $( ...

随机推荐

  1. Tcp服务端判断客户端是否断开连接

    今天搞tcp链接弄了一天,前面创建socket,绑定,监听等主要分清自己的参数,udp还是tcp的.好不容易调通了,然后就是一个需求,当客户端主动断开连接时,服务端也要断开连接,这样一下次客户端请求链 ...

  2. rabbitMQ 笔记

    1. 端口 rabbitMQ  server 使用的端口是5672  ,   AMQP协议的端口 rabbitMQ  web 使用的端口是15672  ,   管理工具的端口 rabbitMQ  cl ...

  3. php self

    self是指向类本身,也就是self是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量. 假如我们使用类里面静态(一般用关键字static)的成员,我们也必须使用self来调用. 还要 ...

  4. INPUT输入框灰体提示

    INPUT输入框灰体提示 <input type="text" value='15 words limit' style="color:#999999" ...

  5. Java中finalize方法用途何在?

    package thinking.in.java.demo; /* * finalize的用途何在? * *本例的终止条件是L所有的Book对象在被当做垃圾回收前都应该被签入.但是在main方法中 * ...

  6. C++为QLabel增加单击事件

    原文来源: http://www.cnblogs.com/findumars/p/4058379.html 原理: 其实就是改写了一个函数:mouseReleaseEvent,当在QLabel放开鼠标 ...

  7. 支持Git的代码托管网站

    支持Git的代码托管网站: https://github.com/https://code.google.com http://www.codeplex.com/ http://git.oschina ...

  8. Android设计模式系列--观察者模式

    观察者模式,是一种非常常见的设计模式,在很多系统中随处可见,尤其是涉及到数据状态发生变化需要通知的情况下.本文以AbstractCursor为例子,展开分析.观察者模式,Observer Patter ...

  9. mysql slow log分析工具的比较

    mysql 中的 slow log 是用来记录执行时间较长(超过 long_query_time 秒)的 sql 的一种日志工具. 启用 slow log 在 my.cnf 中设置 [mysqld] ...

  10. iOS调用系统通讯录获取姓名电话号码(转)

    原文地址:http://blog.csdn.net/idoshi201109/article/details/46007125 OS调用系统通讯录获取姓名电话号码 (iOS 8.0 Xcode6.3可 ...