javascript中資料訪問效能最佳化簡析

來源:互聯網
上載者:User

標籤:javascript   資料   代碼   效能最佳化   變數   

我們一般寫代碼都會考慮代碼的可讀性、可擴充性及重要的是瀏覽器的解析。減少代碼數量提高代碼效能載入速度,是我們每個coder所追求的。在javascript中,我們有時必須考慮的是如何確定資料的儲存位置,以擷取最佳的讀寫效率,資料存放區的位置,關係到代碼執行過程中資料被檢索的速度,資料的儲存位置在很大程度會影響其讀取速度。

javascript中有4種基本的資料存取位置:直接量、變數、數組元素、對象才成員
每種資料存放區的位置都有不同的讀寫消耗。一般的情況下,從一個直接量和局部變數中存取資料的效能差異很小,微不足道。但訪問數組元素和對象成員的代價比較高點,這個需要根據瀏覽器來決定代價的大小。

標識符的解析也需要消耗電腦效能,在啟動並執行範圍中,一個標識符所在位置越深,其讀寫的速度也會越慢,因此,函數中,讀寫局部變數是最快的,而讀寫全域變數是最慢的,因為全域變數總是存在運行期的範圍鏈環境的最末端。所以在沒有最佳化javascript引擎的瀏覽器中,我們儘可能用局部變數,如果某個跨範圍的值在函數中被引用一次以上,我們可以把它儲存到一個局部變數裡,如下面的例子

function initUI(){        var doc = document,            bd = doc.body,            links= doc.getElementsByTagName(‘a‘),            i = 0,            len = links.length;        while(i<len){            update(links[i++]);        }        doc.getElementById(‘btn‘).onclick=function(){        };        bd.className = ‘active‘;    }

documentObject Storage Service到局部變數doc,引用三次降低到一次,雖然提高效能效果不是很明顯,但是,如果document全域變數引用很次,效能效果的改善會很明顯。

javascript中資料訪問效能最佳化簡析

聯繫我們

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