jquery优化笔记收录。
总是从#id选择器来继承,这是jQuery选择器的一条黄金法则。jQuery选择一个元素最快的方法就是用ID来选择了,原生JS也一样。
1 | $('#target'); |
或者从ID选择器继承来选择多个元素:1
$('#target p').hide();
在class前面使用tag
jQuery中第二快的选择器就是tag选择器,因为它和直接来自于原生的Javascript方法getElementByTagName()。所以最好总是用tag来修饰class。这是第二快
jQuery中class选择器是最慢的,因为在IE浏览器下它会遍历所有的DOM节点。尽量避免使用class选择器。还有注意不要用tag来修饰ID。
1 | var target = $('div#target'); // 非常慢,不要使用 |
用ID来修饰ID也是画蛇添足:1
var target_child = $('#target #target_child');// 非常慢,不要使用
使用子查询
将父对象缓存起来以备将来的使用1
2
3var header = $('#header');
header.show();
header.hide();
为了区分普通的JavaScript对象和jQuery对象,可以在变量首字母前加上$符号
用上链式操作效果会更好1
2
3
4
5$('#header').show()
.hide()
.css('display','block')
.css('color','red')
.fadeTo(2, 0.7);
为了获得更好的性能,你应该使用直接函数如$.ajax(),而不要使用$.get()、$.getJSON()、$.post(),因为后面的几个将会调用$.ajax()。
采用jQuery的内部函数data()来存储状态
不要忘了采用.data()函数来存储信息:1
$('#head').data('name','value');