JQuery性能优化
2016-07-06 00:00
429 查看
1不使用each
jQuery 的each循环比原生的for循环性能相差几十倍。2 属性选择器选择
尽量使用ID,类型,类选择器,避免使用属性选择器。尽量使用ID,类,类型选择器,避免属性选择器。ID,类,类型都有原生的方法,属性选择器需要遍历整个DOM,还需要读取每个节点的属性进行判断,性能很低。
尽量不使用祖孙的选择器,使用父子关系更为明确的选择器,也就是使用更能缩小范围的选择器,避免大量的遍历。
3 使用缓存
定义局部变量,缓存要使用多次的结果,一方面避免反复调用,反复在原型链上查找,另一方面局部变量可以加快访问速度。$('#item').css ('color', '#123456'); $('#item').html ('hello'); $('#item').css ('background-color', '#ffffff');
改为:
$('#item').css ('color', '#123456').html ('hello').css ('background-color', '#ffffff'); // 或者 var item = $('#item'); item.css ('color', '#123456'); item.html ('hello'); item.css ('background-color', '#ffffff');
4 避免频繁的DOM操作
修改DOM就会导致浏览器重新建立DOM树和渲染,而这在web中是非常耗时的操作。var item = $('#list'); for (var i=0; i<1000; i++) { item.append (i); }
改为
var list = ''; for (var i=0; i<1000; i++) { list += '<li>'+i+'</li>'; } ('#list').html (list);
或者
var list = []; for (var i=0; i<1000; i++) { list[i]= '<li>'+i+'</li>'; } ('#list').html (list.join(""));
再或者
var list = []; for (var i=0; i<1000; i++) { list[i]= '<li>'+i+'</li>'; } ('#list')[0].innerHTML =list.join("");
5 String连接优化
对于很大String的连接搓澡不要使用concat,使用数组的join相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- JavaScript演示排序算法
- 2015-2016网页设计趋势分析 Web Design of Trends
- jQuery Ajax 跨域调用
- 移动端的长按事件
- jquery教程靠边站,一分钱不花让你免费学会jquery
- JQuery+Strusts1.x无刷新登录
- $.ajax()方法详解
- jQuery ajax - ajax() 方法
- JavaScript 各种遍历方式详解
- 数组方法汇总
- jQuery Html控件基本操作(日常收集整理)
- jQuery插件实现文字无缝向上滚动效果代码
- jQuery菜单插件用法实例
- JQuery 初体验(建议学习jquery)
- 基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
- Jquery实现的table最后一行添加样式的代码
- jQuery实现向下滑出的平滑下拉菜单效果
- jQuery 练习[一] 学习jquery的准备工作
- jquery获得页面元素的坐标值实现思路及代码