到處都是jQuery選取器的年代 不瞭解它們的效能,行嗎

來源:互聯網
上載者:User

最近,我就對jQuery的選取器使用做了一些個小小的實驗,用來說明jQuery的不同選取器在不同的情況下,哪個效率更高,更值得使用。

先在每個測試頁面的head中引入google提供的jquery檔案和用於測試的小外掛程式firejspt。
複製代碼 代碼如下:
<!-- 引入FireJSPT的庫檔案 -->
<script type="text/javascript" src="firejspt.js"></script>
<!-- 引入google提供的1.44版的jQuery的庫檔案,其實哪個版本都無所謂了,呵呵 -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>

1. 最常用的id選取器和class選取器
將以下代碼複製200次,置於body標籤內。
複製代碼 代碼如下:
<div id="ilian">比較id選取器和class選取器</div>
<div class="ilian">比較id選取器和class選取器</div>

用於本次測試的JS代碼如下:
複製代碼 代碼如下:
function ilianTest01(){
$('#ilian').click(function() { alert('Hello World'); });
}

function ilianTest02(){
$('.ilian').click(function() { alert('Hello World'); });
}

/*調用2個函數進行測試*/
$(function(){
jspt.test(function(){ ilianTest01(); });
jspt.test(function(){ ilianTest02(); });
});

測試結果如下:


由圖可以id選取器相比於class選取器的效率優勢是非常地。。。。。

2. 在選擇標籤時,層級選取器用得也非常頻繁,這次對比測試直接子標籤符號“>”和children。

將以下代碼放入body標籤內,並將其中的li標籤複製500次。
複製代碼 代碼如下:
<ul id="ilian">
<li>比較直接子標籤符號“>”和children</li>
<li>比較直接子標籤符號“>”和children</li>
<li>比較直接子標籤符號“>”和children</li>
<!-- 省略497次 -->
</ul>

用於本次測試的JS代碼如下:
複製代碼 代碼如下:
function ilianTest01(){
$('#ilian > li').click(function() { alert('Hello World'); });
}

function ilianTest02(){
$('#ilian').children('li').click(function() { alert('Hello World'); });
}

/*調用2個函數進行測試*/
$(function(){
jspt.test(function(){ ilianTest01(); });
jspt.test(function(){ ilianTest02(); });
});

測試結果:


由此可見children選取器要優於直接子標籤符號選取器。
限於文章長度,本文只展示了最基本的測試,且以上測試,均是在簡單環境中測試的,測試效果並不代表絕對的結論。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.