浅谈jQuery性能优化的方法

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值