提升效率的JQUERY(转)
2024-09-27 00:50:51
摘要
本文部分整理了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 保持代码规范整洁
最新文章
- js实现上下滑动侧边栏
- mongoengine
- [转]连续创建多个Oracle触发器失败,单个创建才成功的解决方法
- Codeforces Round #250 (Div. 1) D. The Child and Sequence (线段树)
- LeetCode 11
- (转载)HTTP URL
- 设置将 Microsoft Azure 的网络基础结构以支持设置为灾难恢复站点
- Delphi中TFlowPanel实现滚动条效果
- JAVA学习之动态代理
- vs2008中xlslib与libxls库的编译及使用
- ORACLE透明网关访问SQL Server配置总结
- [译]Ocelot - Service Discovery
- Java开发笔记(六十六)映射:HashMap和TreeMap
- linux下的crontab安装及简单使用
- SQL Server 跨网段(跨机房)通过备份文件初始化复制
- centos下安装配置mongodb
- 11g等待事件之library cache: mutex X
- Scala_标识符
- 基于神念TGAM的脑波小车(2)
- 用ELK搭建简单的日志收集分析系统【转】
热门文章
- Xamarin XAML语言教程构建ControlTemplate控件模板 (二)
- [USACO Special 2007 Chinese Competition]The Bovine Accordion and Banjo Orchestra
- Codeforces 785D Anton and School - 2(组合数)
- Exercise02_09
- 让IE浏览器支持HTML5
- Android Studio使用过程中Java类突然报红,但项目可运行解决方案
- [Git] Git 的origin和master分析
- coffeescript 1.6.3使用帮助
- list 组合,模糊查询llist 数据(不走数据库)
- Rails生成随机字符串及加解密