提升效率的JQUERY(转)

摘要

本文部分整理了JQuery性能提升的一些方法,内容综合自artzstudio,viralpatel,htmlgoodies等网站,希望对大家有所帮助。这些规则虽然简单,但如果不遵循就会影响程序执行效率,增加浏览器的负担。


1 优先使用ID选择器和以ID开头的选择器

//ID选择器性能最佳
$("#myDiv")
//以ID开头,提高效率
$("#myDiv .red")

2 类选择之前加元素选择提高效率

//元素(tag)选择器效率仅次于ID选择器,优于类(class)选择器
$("#myList li.active")

3 缓存JQuery对象

//错误,做了两次选择
$("#myList li").css(‘border‘,‘3px‘);
$("#myList li").css(‘color‘,‘red‘);
//缓存对象,提高效率
var $li = $("#myList li")
$li.css(‘border‘,‘3px‘);
$li.css(‘color‘,‘red‘);

4 利用链式命令,减少代码量

//链式命令,减少代码量
$("#myList li").css(‘border‘,‘3px‘)
               .css(‘color‘,‘red‘);

5 使用子查询

//一次全局查找加两次子查询优于两次全局查找
var $list = $("#myList");
var $actives = $list.find(‘li.active‘);
var $in_actives = $list.find(‘li.in_active‘);

6 减少DOM的操作次数(DOM操作很慢)

//操作一次DOM,而不要操作100次
var lis = "";
for (var i=0, i<100; i++) {
 lis += ‘<li>‘ + i + ‘</li>‘;
}
$(‘#myList‘).html(lis);

7 许多节点调用相同的函数时,利用事件委托

//效率较低
$(‘#myList li‘).bind(‘click‘, function(){
});
//效率较高
$(‘#myList‘).bind(‘click‘, function(e){
 if ($(e.target).nodeName === ‘LI‘) {
 }
});

8 把不重要的功能(如拖放,效果等)放在$(window).load执行

//不要把所有都放在$(document).ready中
$(window).load(function(){
 // 在页面所有对象加载完执行
});

9 较长的字符串拼接不要使用concat(),要使用join()

//join()比concat()效率更好
var list_items = [];
for (var i=0; i<=10; i++) {
    list_items[i] = ‘<li>Item ‘+i+‘</li>‘;
}
$(‘#myList‘).html(list_items.join(‘‘));

10 使用for循环,不要使用$.each循环

//js原生方法效率更好
var js_array = new Array ();
for (var i=0; i<10000; i++) {
    js_array[i] = i;
}

11使用元素前,先检查其是否存在

//检查id为myDiv的元素是否存在
if($("#myDiv").length) {
}

12 函数总是返回false

$(‘#myDiv‘).click (function () {
    return false;
});

13 使用html5的data属性

//<div id="myDiv" data-value="111"></div>
$("#myDiv").data("value");

14 使用最新的版本及CDN

15 压缩你的JS代码

16 保持代码规范整洁

时间: 2024-08-13 05:13:26

提升效率的JQUERY(转)的相关文章

paip.提升效率--数据绑定到table原理和流程Angular js jquery实现

paip.提升效率--数据绑定到table原理和流程Angular js  jquery实现 html #--keyword 1 #---原理和流程 1 #----jq实现的代码 1 #-----Angular 的实现 3 #--keyword jquery 遍历表格tr  td Angular 模板绑定 #---原理和流程 获得所有的行,第一的头行..排除,,,在的所有的删除. 遍历表格tr获得tds的所有的id数组. 根据id/id索引来获得绑定的数据源里面的数据字段..绑定到个td上..

提升效率的Linux终端快捷操作汇总

很多普通 Linux 桌面用户都对使用终端感到排斥和恐惧,其实它没大家想的那么复杂,很多常见操作都可以直接在终端中进行,如:安装软件.升级系统等. 无论你是新手还是 Linux 终端使用的老鸟,系统极客在此为大家总结了提升终端命令执行效率的快捷操作汇总,希望能帮助你学习和提升效率. 移动定位光标 在终端中移动光标和定位似乎非常不便,其实不是你想的那样,有很多种方式可以让键盘成为你的好朋友,只是需要掌握正确的方法而已. 定位单词 在长段的命令中,使用 Ctrl + ← 和 Ctrl + → 可快速

Android测试提升效率批处理脚本(三)

前言: 前面放出过几次批处理,这次只放一个环境检查的被管理员给打回来了,不得不再找找几个有含金量的放出来,请看正文~~~ 目录 1.Android环境检查 2.Android内存监控 3.模拟蓝牙手柄事件 一.Android环境检查 @ECHO OFF ECHO.     ::::::::::::::::::::::::::::::::::::::::::::::::: ECHO.     ::                                             :: ECH

atitit groovy 总结java 提升效率

atitit groovy 总结java 提升效率 #---环境配置 1 #------安装麻烦的 2 三.创建groovy项目 2 3.  加入? Groovy 类 2 4.  编译执行groovy类 3 Groovy断点调试不生效的解决 4 Groovy实现执行原理 5 1. Groovy脚本的执行.. 5 2. Groovy类的执行.. 5 Groovy语法长处: 6 3. 动态类型def 6 4. 循环变量不须要def 6 5. String 和Gstring 6 6. 范围 6 7. 

Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范推荐标准

1. H5 html+ajax与后端彻底的前后端分离1 2. 业务逻辑也适当的迁移js化1 2.1. Cbb体系 通用模块设计与累积 规划1 3. 需求文档直接生成html界面原形1 4. 原形设计h5化1 5. 国际化,配置化2 6. 跨域 与服务端代理(已经实现)2 7. 直接方便html界面与后端的连接.2 1. H5 html+ajax与后端彻底的前后端分离 这样方便人员梯度建设以及加快效率..一个项目很大的部分就在于界面制作 当界面制作好,就可以通过通用接口直接连接测试,提升效率. 2

paip.提升效率---filter map reduce 的java 函数式编程实现

#paip.提升效率---filter map reduce 的java 函数式编程实现 ======================================================== #----------------------index索引------------------++函数式编程的优点儿以及缺点++actual code 实际代码例如以下---filter 实现...--- map 实现..---reduce---调用 ##函数式编程的优点儿以及缺点------

27个提升效率的iOS开源库推荐

DZNEmptyDataSet(UI,空表格视图解算器) PDTSimpleCalendar(UI,drop-in日历组件) MagicalRecord(实施活跃记录模式的Core Data助手) Chameleon(UI,色彩框架) Alamofire(Swift 网络) TextFieldEffects (UI,自定义外观的文本区域) GPUImage(快速图片处理) iRate(获取用户评价) GameCenterManager(快速管理游戏中心) PKRevealController 2

EntityFramework6中关闭自动识别变更功能提升效率的一点小技巧

默认情况下,ef6能够在调用以下方法时自动判别实体是否变更: DbSet.Find DbSet.Local DbSet.Remove DbSet.Add DbSet.Attach DbContext.SaveChanges DbContext.GetValidationErrors DbContext.Entry DbChangeTracker.Entries 当上下文追踪很多实体,并且你在一个循环中调用很多次这些方法的时候,你可以在循环之前先关闭自动识别功能,可以极大提升效率.例如: usin

兄弟连PHP培训教你提升效率的20个要点

用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"(译注:www.lampbrother.net PHP手册中说echo是语言结构,不是真正的函数,故把函数加 上了双引号). 1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id'] 的速度是$row[id]的7倍. 3.echo 比 print 快