尋尋覓覓,覓覓尋尋終於找到了一些關於jquery效能最佳化的文章,小編果斷收藏當然不能忘了加上自己的一些總結及理解。
首先,之前文章中的jquery鏈式操作就是jquery效能最佳化方式中的一種,具體實現及優勢在這裡就不重複了哈。其次,jquery的最佳化與web最佳化中的某些方法是一樣的。
a.壓縮js。使用代碼壓縮技術,減小檔案體積。(使用jsmin、YUI Compressor等)。
b. 事件預設是向上冒泡的,發生在子節點中的事件,可以由父節點來處理。把事件註冊上提到父節點上,這 樣就不需要為每個子節點註冊事件監聽.
c.利用緩衝,當要多次使用某個jquery對象時,可以將jquery對象緩衝到變數裡。
複製代碼 代碼如下:
var nodeTd = $("table td");
var $cj = $("#cj");
$cj.on("click",function(){
$cj.css("color","blue");})
jquery結果緩衝,如果需要將jquery結果對象在程式中的其他地方使用,或者function會多次執行,那麼就可以將其存放到一變數中。
d.盡量從id選取器來繼承。因為id的唯一性,id選擇是jquery選擇一個元素最快的方法了。
複製代碼 代碼如下:
$("#firstd").slideDown(500);
$("#firstd img").slideUp(500);//利用id選取器繼承來選擇多個元素
e.使用子查詢
複製代碼 代碼如下:
zhuye.on("swiperight","#data li",function(){
$(this).find(".delete").hide();
});//swiperight——看jquery-mobile api內容內容
f.採用find(),兒不使用上下文尋找,.find()函數更快速些,在上面的e中已有使用。
g.採用jquery的內建函式data()來儲存狀態(這種效能最佳化方法在百度時第一次見到,例子也暫直接引用他的吧)。
複製代碼 代碼如下:
$('#head').data('name', 'value');
// 之後在你的應用中調用:
$('#head').data('name');
h.最後,使用新版本的 jQuery及簡化jquery代碼。
複製代碼 代碼如下:
$(document).ready(function (){
});
$(function (){
});