Jquery怎麼寫才能夠優化

JQuery的強大和使用範圍大家都心裏有數,在這裏就不贅述了

一優先使用ID選擇器

在jQuery中最快的選擇器是ID選擇器,因爲它直接來自於JavaScript的getElementById()方法。 

<div id="content">
<form method="post" action="#">
<h2>交通信號燈</h2>
<ul id="traffic_light">
<li><input type="radio" class="on" name="light" value="red" /> 紅色</li>
<li><input type="radio" class="off" name="light" value="yellow" /> 黃色</li>
<li><input type="radio" class="off" name="light" value="green" /> 綠色</li></ul>
<input class="button" id="traffic_button" type="submit" value="Go" />
</form>
</div>


如果採用下面的選擇器,那麼效率是低效的

var traffic_button = $("#content .button");
 

因爲button已經有ID了,我們可以直接使用ID選擇器。如下所示

var traffic_button = $("#traffic_button");
 

當如果我們在操作單一的元素時候如果需要選擇多個元素,這必然會涉及到 DOM遍歷和循環,
爲了提高性能,建議從最近的ID開始繼承。

二、在類CSS前使用標籤

在jQuery中第二快的選擇器是tag(標籤)選擇器( 比如:$("div") )。

比如需要選擇 紅綠 單選框,那麼可以使用一個tag name來限制(修飾)class ,如下所示:

var active_light = $("input.on");

 

使用tag來修飾class的時候,我們需要注意以下幾點

(1) 不要使用tag來修飾ID,如下所示:

var content = $("div#content");


(2)不要畫蛇添足的使用ID來修飾ID,如下所示

 var traffic_light = $("#content #traffic_light");


注:如果使用屬性選擇器,也請儘量使用tag來修飾,如下所示:

$('p[row="c3221"]').html();而不是這樣:$('[row="c3221"]').html();

 

三、將jQuery對象緩存起來

把jQuery對象緩存起來 就是要告訴我們 要養成將jQuery對象緩存進變量的習慣

$("#traffic_light input.on").bind("click", function(){ ... });
$("#traffic_light input.on").css("border", "1px dashed yellow");
$("#traffic_light input.on").css("background-color", "orange");
$("#traffic_light input.on").fadeIn("slow");

切記不要這麼做。
我們應該先將對象緩存進一個變量然後再操作,如下所示:

var $active_light = $("#traffic_light input.on");
$active_light.bind("click", function(){ ... });
$active_light.css("border", "1px dashed yellow");
$active_light.css("background-color", "orange");
$active_light.fadeIn("slow");

對同一個對象的選擇,我們應該給它賦予一個變量,而不是直接CTR+C/V





 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章