如何对jQuery代码进行性能优化总结

1、总是使用id选择器。 在jQuery中最快的选择器是id选择器,它直接映射到JavaScript的getElementById()方法。 在jQuery中最慢的选择器是class选择器,在IE中它循环整个DOM,可能的话尽量...

1、总是使用id选择器。


在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内容)都下载完后才去调用所有对象的。

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
牟雪峰
牟雪峰

12 篇文章

作家榜 »

  1. admin 651 文章
  2. 粪斗 185 文章
  3. 王凯 92 文章
  4. 廖雪 78 文章
  5. 牟雪峰 12 文章
  6. 李沁雪 9 文章
  7. 全易 2 文章
  8. bngvzaeysj 0 文章