JQuery教學之效能最佳化

來源:互聯網
上載者:User

jQuery是一款非常優秀的javascript架構,當我們使用到jQuery後就再也不想回到javascript時冗長的代碼,那麼jQuery的最佳化就擺在了我們的面前。那麼我們最佳化JQuery應該從那些方面入手呢?

        1、使用最新版本的jQuery

        新版本相對於舊版本會做效能上的改進,還有就是添加新功能。

        2、選取器的使用

        我們通常會使用id選取器、class選取器、元素選取器、偽類別選取器和元素選取器。在使用時我的建議是最好使用id選取器,其次是class選取器>元素選取器>Element選取器>偽類別選取器。

        說到選取器時,不可必選的要插上一句,在使用選取器查最好是從具有id的父元素開始逐級向下尋找。

        3、不要過度的使用jQuery

        記住一句話原生的是最快的。jQuery是write less,do more(寫的更少,做的更多)。

        4、做好緩衝

        當時要重複使用一個節點是可以使用一個變數存放,在使用時再調用。避免重複擷取節點,降低效率。

複製代碼 代碼如下:
var inputSelect = $("#head .head_right input");
inputSelect.find("a");
inputSelect.find("i");

        5、使用鏈式操作

        jQuery的一大亮點,就是可以使用鏈式操作。

複製代碼 代碼如下:
$("#content").find(".div").eq(2).html("Hello World");

        6、事件委託

        當需要多個同級元素執行一種類型的事件時,可以採用事件委託的方式。例:

複製代碼 代碼如下:
<div id="content">
    <div><div>
    <div><div>
    <div><div>
    <div><div>
    <div><div>
<div>

    當每個class="div"的div都具備一個click事件的時候我們可以採取事件委託,

複製代碼 代碼如下:
$("#content").on("click","div",function(){   
    $(this).css("color","#ff5500");
  });

        7、正確處理迴圈

         迴圈是一種較耗時的操作,如果可以使用選取器直接選中元素,就不要使用迴圈去一個個的遍曆元素。

        Javascript的原生方法for和while,要比jQuery的each()快。所以應該優先使用原生的方法。

        8、減少JQuery對象的產生

        產生Query對象就會產生對應的屬性和方法,比較佔用資源。所以盡量減少jQuery對象的產生。

        9、變數的範圍

        當一個變數不需要 在多個函數調用時,應該把變數放在函數內,減少代碼執行時尋找代碼的時間。

        10、將某些函數延遲到$(window).load執行

        $(document).ready確實好用,但是它可以再頁面渲染時,其他元素還沒有下載完成就執行。

        11、指令碼的合并

        指令碼都是一一被載入的,減少指令碼數量也能提高效率。

        12、元素封裝

        當給一個節點插入一個內容,可以先把內容進行封裝,再插入。

複製代碼 代碼如下:
var content = "";
$("#head").html(content);

        另外就是進行js檔案的壓縮。

        隨著jQuery的不斷被使用,越來越多的最佳化方法會被發現。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.