3.將jquery對(duì)象緩存起來(lái)
要養(yǎng)成將jquery對(duì)象緩存進(jìn)變量的習(xí)慣.
永遠(yuǎn)不要這樣做: $(‘#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’);
最好先將對(duì)象緩存進(jìn)一個(gè)變量然后再操作: 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的封裝, 通常用一個(gè)$作為變量前綴. 記住,永遠(yuǎn)不要讓相同的選擇器在你的代碼里出現(xiàn)多次. 緩存jquery結(jié)果,備用
如果你打算將jquery結(jié)果對(duì)象用在程序的其它部分,或者你的function會(huì)多次執(zhí)行, 那么就將他們緩存到一個(gè)全局變量中.
定義一個(gè)全局容器來(lái)存放jquery結(jié)果, 我們就可以在其它函數(shù)引用它們:
// 在全局范圍定義一個(gè)對(duì)象 (例如: window對(duì)象) window.$my = { // 初始化所有可能會(huì)不止一次要使用的查詢 head : $(‘head’), traffic_light : $(‘#traffic_light’), traffic_button : $(‘#traffic_button’) };
function do_something() { // 現(xiàn)在你可以引用存儲(chǔ)的結(jié)果并操作它們 var script = document.createElement(’script’); $my.head.append(script);
// 當(dāng)你在函數(shù)內(nèi)部操作是, 可以繼續(xù)將查詢存入全局對(duì)象中去. $my.cool_results = $(‘#some_ul li’); $my.other_results = $(‘#some_table td’);
// 將全局函數(shù)作為一個(gè)普通的jquery對(duì)象去使用. $my.other_results.css(‘border-color’, ‘red’); $my.traffic_light.css(‘border-color’, ‘green’); }
4. 掌握強(qiáng)大的鏈?zhǔn)讲僮?/strong>
上面的例子也可以寫(xiě)成這樣: var $active_light = $(‘#traffic_light input.on’);$active_light.bind(‘click’, function(){…}) .css(‘border’, ‘3px dashed yellow’) .css(‘background-color’, ‘orange’) .fadeIn(’slow’);
這樣可以寫(xiě)更少的代碼, 讓我們的js更輕量.
出處:Time Machine
責(zé)任編輯:moby
上一頁(yè) jQuery性能優(yōu)化指南 [2] 下一頁(yè) jQuery性能優(yōu)化指南 [4]
◎進(jìn)入論壇網(wǎng)頁(yè)制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評(píng)論。
|