Lights Off Now Lights Off Now Youtube Lights Off Now
Www Lightsoffnow Tag Camera 3 Lights Off Now jQuery性能规则 - 一抹微蓝 - 博客园
Www Lightsoffnow Tag Camera 3 Lights Off Now
Camera i Www & Tag bsearchpsearchid Lightsoffnow " Www o Tag t Www nsearch">
Tag & Lightsoffnow L Lightsoffnow gsearcht Tag o Lightsoffnow f Www o1 search Www a Tag esearcha1p Lightsoffnow Csearchm Www ra Tag &nsearchCsearchm Tag r Www s Tag Tg Lightsoffnow ;
esearchr Lightsoffnow hsearch Lightsoffnow i Lightsoffnow h Www sosearchf1ow Www ssearcha Camera c; Tag C Camera me
a Lightsoffnow s
asearchc1s Www earsearchh Lightsoffnow <form method="post" action="">
<h2>Traffic Light</h2>
<ul id="traffic_light">
<li><input type="radio" class="on" name="light" value="red" /> Red</li>
<li><input type="radio" class="off" name="light" value="yellow" /> Yellow</li>
<li><input type="radio" class="off" name="light" value="green" /> Green</li>
</ul>
<input class="button" id="traffic_button" type="submit" value="Go" />
</form>
</div>
总是在一个Class前面加上一个tag名字(记得从一个ID传下来)
var active_light = $('#traffic_light input.on');
注意:在jQuery里Class选择器是最慢的一个选择器;在IE中它循环整个DOM。可能的话尽量避免使用它。不要在ID前面加Tags。例如,它会因为去循环所有的<div>元素去寻找ID为content的<div>,而导致很慢。
var content = $('div#content');
按照同样的思路,从多个ID传下来是冗余的。
var traffic_light = $('#content #traffic_light');
3.缓存jQuery对象
养成保存jQuery对象到一个变量上(就像上面的例子)的习惯。例如,不要这样做:
代码
$('#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');
提示:使用$前辍表示我们的本地变量是一个jQuery包集。记住,不要在你的应该程序里出现一次以上的jQuery重复的选择操作。
额外提示:延迟存储jQuery对象结果。
如果你想在你的程序的其它地方使用jQuery结果对象(result object(s)),或者你的函数要执行多次,要把它缓存在一个全局范围的对象里。通过定义一个全局容器保存jQuery结果对象,就可以在其它的函数里引用它。