標籤: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中資料訪問效能最佳化簡析