ie6浏览器,js引擎解析速度很慢,所以只能选择优化js代码
1.尽量使用#id去寻找元素(id是唯一的,无需遍历和循环DOM)
2.jQuery中第二快的选择器就是Tag选择器,尽量在Classes前面使用Tags
eg:var active_light = $(‘#traffic_light input.css’); 比$(‘.css’)快许多
3.养成保存jQuery对象到一个变量上的习惯
记住,永远不要让相同的选择器在你的代码里出现多次.
eg:
$(‘#traffic_light input.on).bind(‘click’, function(){…});
$(‘#traffic_light input.on).css(‘border’, ‘3px dashed yellow’);
$(‘#traffic_light input.on).css(‘background-color’, ‘orange’);
$(‘#traffic_light input.on).fadeIn(‘slow’);
取而代之,首现保存jQuery变量到一个本地变量后,再继续你的操作。
var $active_light = $(‘#traffic_light input.on’);
$active_light.bind(‘click’, function(){…});
$active_light.css(‘border’, ‘3px dashed yellow’);
$active_light.css(‘background-color’, ‘orange’);
$active_light.fadeIn(‘slow’);
4.更好的利用链:
var $active_light = $(‘#traffic_light input.on’);$active_light.bind(‘click’, function(){…})
.css(‘border’, ‘3px dashed yellow’)
.css(‘background-color’, ‘orange’)
.fadeIn(‘slow’);
这样可以让我们写更少的代码,使JavaScript更轻量。
5.使用子查询
jQuery 允许我们对一个已包装的对象使用附加的选择器操作. 因为我们已经在保存了一个父级对象在变量
里, 这样大大提高对其子元素的操作:
var $traffic_light = $(‘#traffic_light’),
$active_light = $traffic_light.find(‘input.on’),
$inactive_lights = $traffic_light.find(‘input.off’);
提示: 你可以用逗号分隔的方法一次声明多个局部变量 节省字节数
6.将 jquery结果缓存到一个全局变量中
// 在全局范围定义一个对象 (例如: window对象)
window.$my =
{
// 初始化所有可能会不止一次要使用的查询
head : $(‘head‘),
traffic_light : $(‘#traffic_light‘),
traffic_button : $(‘#traffic_button‘)
};
function do_something()
{
//现在你可以引用存储的结果并操作它们
var script = document.createElement(‘script‘);
$my.head.append(script);
$my.cool_results = $(‘#some_ul li‘);
$my.other_results = $(‘#some_table td‘);// 将全局函数作为一个普通的jquery对象去使用.
$my.other_results.css(‘border-color‘, ‘red‘);
$my.traffic_light.css(‘border-color‘, ‘green‘);
}
7.第三,多用父子关系,少用嵌套关系。
例如,使用parent>child代替parent child。因为”>”是child选择器,只从子节点里匹配,不递归。而” “是后
代选择器,递归匹配所有子节点及子节点的子节点,即后代节点。
jQuery选择器使用频率列表
选 择 器 | 统计频率 |
#id | 51.290% |
.class | 13.082% |
tag | 6.416% |
tag.class | 3.978% |
#id tag | 2.151% |
tag#id | 1.935% |
#id:visible | 1.577% |
#id .class | 1.434% |
.class .class | 1.183% |
* | 0.968% |
续表
选 择 器 | 统计频率 |
#id tag.class | 0.932% |
#id:hidden | 0.789% |
tag[name=value] | 0.645% |
.class tag | 0.573% |
[name=value] | 0.538% |
tag tag | 0.502% |
#id #id | 0.430% |
#id tag tag | 0.358% |
发表评论
您必须在 登录 后才能评论.