JQuery性能分析:
理論上來講,jQuery 提供的方法find()、next()、nextAll()和children()運行速度要快於使
用高級選擇器。因爲他們實現的算法有所不同,高級選擇器是通過解析字符串來獲取節點對象,而jQuery 提供的方法一般都是單個選擇器,是可以直接獲取的。但這種快慢的差異,
對於客戶端腳本來說沒有太大的實用性,並且速度的差異還要取決了瀏覽器和選擇的元素內
容。
綜上所屬,最快的是find()方法,最慢的是$('#box p')這種高級選擇器。如果一開始將
$('#box')進行賦值,那麼jQuery 就對其變量進行緩存,那麼速度會進一步提高。
var box = $('#box');
var p = box.find('p');
注意:我們應該推薦使用哪種方案呢?其實,使用哪種都差不多。這裏,我們推薦使用
jQuery 提供的方法。因爲不但方法的速度比高級選擇器運行的更快,並且它的靈活性和擴展
性要高於高級選擇器。使用“+”或“~”從字面上沒有next 和nextAll 更加語義化,更加清
晰,jQuery 的方法更加豐富,提供了相對的prev 和prevAll。畢竟jQuery 是編程語言,需要
能夠靈活的拆分和組合選擇器,而使用CSS 模式過於死板。所以,如果jQuery 提供了獨立
的方法來代替某些選擇器的功能,我們還是推薦優先使用獨立的方法。