浅谈jQuery性能优化的方法
2017-03-04 20:42
549 查看
1、总是使用id选择器。
在jQuery中最快的选择器是id选择器,它直接映射到JavaScript的getElementById()方法。
在jQuery中最慢的选择器是class选择器,在IE中它循环整个DOM,可能的话尽量避免使用class选择器。
(1)当需要选择某元素,使用其id选择器。如:
替代
(2)当需要选择多个元素(如某标签元素、某类元素等)时,总是使用最近的父id,构成子选择器,加快查找。如:
2、总是在一个Class前面加上一个tag名字,当然最好在前面加上最近的父id,构成子选择器。
在jQuery中第2快的选择器是标签选择器,它直接映射到JavaScript的getElementsByTagName()方法。如:
不要在id选择器前面加标签选择器。如:
从多个ID传下来是冗余的。如:
3、养成保存jQuery对象到一个变量上的习惯。如:
4、用jQuery的链式调用。如:
5、保存jQuery父对象后使用子查询。如:
6、在开始佛日循环的时候设置一个变量来存储这个数字,可以让循环跑得更快。如:
代替
7、限制直接对DOM操作,若要插入一系列DOM元素,先构造好再一次性插入而不是每构造一个元素就插入一次。如:
替代
8、使用$(window).load。
$(document).ready()表示文档准备好了,也就是浏览器已经解析完整个html文档,dom树已经建立起来了;而$(window).load()表示整个页面已经加载完毕,与前者的区别是dom树虽然已经建立起来了,但页面不一定加载完毕,如一些大的图片等加载完成需要一定的时间;但是页面加载完毕后,dom肯定也就建立起来了。
如果发现页面在下载中停顿,就有可能是$(document).ready引起的。把jQuery函数绑定到$(window).load事件,可以减少下载时的CPU使用率,它是在所有HTML(包括iframe内容)都下载完后才去调用所有对象的。
在jQuery中最快的选择器是id选择器,它直接映射到JavaScript的getElementById()方法。
在jQuery中最慢的选择器是class选择器,在IE中它循环整个DOM,可能的话尽量避免使用class选择器。
(1)当需要选择某元素,使用其id选择器。如:
$('#student')
替代
$('.students')
(2)当需要选择多个元素(如某标签元素、某类元素等)时,总是使用最近的父id,构成子选择器,加快查找。如:
$('#student input')
2、总是在一个Class前面加上一个tag名字,当然最好在前面加上最近的父id,构成子选择器。
在jQuery中第2快的选择器是标签选择器,它直接映射到JavaScript的getElementsByTagName()方法。如:
$('#student input.boy')
不要在id选择器前面加标签选择器。如:
$('div#student')
从多个ID传下来是冗余的。如:
$('#student#boy')
3、养成保存jQuery对象到一个变量上的习惯。如:
var stu = $('#student');
4、用jQuery的链式调用。如:
var stu = $('#student'); stu.css('background','red').fadeIn('slow');
5、保存jQuery父对象后使用子查询。如:
var stu = $('#student'); var boy = stu.find('input.boy');
6、在开始佛日循环的时候设置一个变量来存储这个数字,可以让循环跑得更快。如:
for (var i = 0, len = list.length; i < len; i++) li += '<li>' + list[i] + '</li>';
代替
for (var i = 0; i < list.length; i++) li += '<li>' + list[i] + '</li>';
7、限制直接对DOM操作,若要插入一系列DOM元素,先构造好再一次性插入而不是每构造一个元素就插入一次。如:
var list = ['第一章','第二章','第三章','第四章'];
var $list = $('#list);
var li = "";
for (var i = 0, len = list.length; i < len; i++) li += '<li>' + list[i] + '</li>';
$list.html(li);
替代
var list = ['第一章','第二章','第三章','第四章']; var $list = $('#list); var li = ""; for (var i = 0, len = list.length; i < len; i++) $list.append('<li>' + list[i] + '</li>');
8、使用$(window).load。
$(document).ready()表示文档准备好了,也就是浏览器已经解析完整个html文档,dom树已经建立起来了;而$(window).load()表示整个页面已经加载完毕,与前者的区别是dom树虽然已经建立起来了,但页面不一定加载完毕,如一些大的图片等加载完成需要一定的时间;但是页面加载完毕后,dom肯定也就建立起来了。
如果发现页面在下载中停顿,就有可能是$(document).ready引起的。把jQuery函数绑定到$(window).load事件,可以减少下载时的CPU使用率,它是在所有HTML(包括iframe内容)都下载完后才去调用所有对象的。
相关文章推荐
- 【JQuery】性能优化方法
- 12种jQuery性能优化方法解析(常用 转载)
- jquery性能优化方法
- 十二种jQuery性能优化方法解析
- [原创]浅谈H5页面性能优化方法
- Mysql 性能优化7【重要】sql语句的优化 浅谈MySQL中优化sql语句查询常用的30种方法(转)
- 十二种jQuery性能优化方法解析
- jquery性能优化的十种方法
- 浅谈Android开发中ListView控件性能的一些优化方法
- 浅谈jQuery代码优化之事件委托(事件绑定)——bind()|live()|delegate()|on()|off()|one()方法
- 浅谈嵌入式软件中的一些性能优化方法
- jquery性能优化的十种方法
- jQuery代码性能优化的10种方法
- 浅谈Android开发中ListView控件性能的一些优化方法
- jQuery性能优化方法
- 12种jQuery性能优化方法解析
- [转帖]ASP.NET中常用的优化性能的方法
- ASP.NET中常用的优化性能方法
- MySQL 数据库性能优化方法
- Asp.NET中常用的一些优化性能的方法