jQuery效能優化指南(3)

2022-03-01 18:18:00 字數 1909 閱讀 3399

8,盡量使用id代替class。

前面效能優化已經說過,id選擇器的速度是最快的。所以在html**中,能使用id的盡量使用id來代替class。

看下面的乙個例子:

// 建立乙個list

var $mylist = $('#mylist');

var mylistitems = '';

$mylist.html(mylistitems);

// 選擇每乙個 li

for (i = 0; i < 1000; i++)

在**最後,選擇每個li的過程中,總共用了5066毫秒,超過5秒了。

接著我們做乙個對比,用id代替class:

// 建立乙個list

var $mylist = $('#mylist');

var mylistitems = '';

$mylist.html(mylistitems);

// 選擇每乙個 li

for (i = 0; i < 1000; i++)

在上段**中,選擇每個li總共只用了61毫秒,相比class的方式,將近快了100倍。

9,給選擇器乙個上下文

jquery選擇器中有乙個這樣的選擇器,它能指定上下文。

jquery( expression, context );

通過它,能縮小選擇器在dom中搜尋的範圍,達到節省時間,提高效率。

普通方式:

$('.mydiv')

改進方式:

$('.mydiv' , $("#listitem") )

10,慎用 .live()方法(應該說盡量不要使用)

這是jquery1.3.1版本之後增加的方法,這個方法的功能就是為 新增的dom元素 動態繫結事件。

但對於效率來說,這個方法比較占用資源。所以請盡量不要使用它。

例如有這麼一段**:

this is first p

add

執行後,你會發現 新增 的 p元素,並沒用被繫結click事件。

你可以改成.live("click")方式解決此問題,**如下:

$(function());

$(function());

$("button").click(function());

})

雖然我把繫結事件重新寫了一次,**多了點,但這種方式的效率明顯高於live()方式,

特別是在頻繁的dom操作中,這點非常明顯。

11,子選擇器和後代選擇器

後代選擇器經常用到,比如:$("#list  p");

後代選擇器獲取的是元素內部所有元素。

而有時候實際只要獲取 子元素,那麼就不應該使用後代選擇器。

應該使用子選擇器,**如下:

$("#list > p");

12,使用data()方法儲存臨時變數

下面是一段非常簡單的**,

$(function()else

});})

改用data()方式後,**如下:

$(function()else

});})

jquery效能優化指南(3)到此結束。

相信你也有你的idea,請共享出來吧。 email : [email protected]

作者的blog:

jQuery效能優化指南

這個話題也是老生常談的了,jquery倒是沒少用,卻很少考慮它的效能!隨著cpu的嗷嗷上揚,覺得應該好好考慮這個問題!最近讀到e文 jquery performance rules 拿來跟大家分享,粗略的翻譯了一下!1 always descend from an id 總是從id選擇器開始繼承 2...

jQuery效能優化指南 2

url 為了方便大家學習和我以後的學習方便 真理了一下 oo oo oo oo 2.在class前使用tag 第二快的選擇器是tag選擇器 head 同理,因為它來自原生的getelementsbytagname 方法.總是用乙個tag name來限制 修飾 class 並且不要忘記就近的id va...

C 效能優化指南

1 用好的編譯器並用好編譯器 支援c 11的編譯器,intelc 速度最快 gnu的c 編譯器gcc g 非常符合標準 visual c 效能折中 clang 最年輕mac os x 2 使用更好的演算法。3 使用更好的資料結構 不同的資料結構在使用記憶體管理器的方式也有所不同 4 使用更好的庫 熟...