1. 程式人生 > >前端頁面優化方案

前端頁面優化方案

htm 設置 多個 靜態 ID 行操作 col 前端 LV

前端頁面優化主要有2方面:

1.頁面級別

一、減少http請求次數,每個請求都是有成本,請求多了數據顯示慢,影響頁面渲染。

實現方法:1.合理設置http緩存 將請求的內容緩存在本地,下次用時不用再去請求。2.合並頁面所用的CSS圖片,使加載圖片的次數減少。

二、將JS文件置於文檔底部,使其不影響頁面的渲染(js阻塞會影響頁面的渲染),而且盡量不要用內聯JS,如果用盡量異步執行它。

三、CSS前置,將CSS文件盡量放置在head中,使其不影響頁面渲染。

四:盡量減少JS文件和CSS文件的個數,盡量將多個文件合並為一個

2.代碼級別

一、js CSS文件中變量的聲明簡化,冗余代碼,註釋代碼都會影響JS的加載

二、減少作用域鏈查找,減少閉包的使用。例如

var globalVar = 1;

function myCallback(info){

for( var i = 100000; i--;){ //每次訪問 globalVar 都需要查找到作用域鏈最頂端,本例中需要訪問 100000 次

globalVar += i; }

}  

更高效的寫法:

var globalVar = 1; // 全局變量

function myCallback(info){

var localVar = globalVar; //局部變量緩存全局變量

for( var i = 100000; i--;){ //本例中只需要訪問 2次全局變量在函數中只需要將 globalVar中內容的值賦給localVar 中區

localVar += i; //訪問局部變量是最快的

}

globalVar = localVar;

}

三、DOM操作是腳本中最耗性能的一類操作,例如增加、修改、刪除 DOM元素或者對 DOM集合進行操作。如果腳本中包含了大量的 DOM操作則需要註意

例如:getElementsByTagName()返回的是一個HTMLCollection,經常我們把它當作數組使用,但是在訪問性能上則比數組要差很多,原因是這個集合並不是一個靜態的結果,它表示的僅僅是一個特定的查詢,每次訪問該集合時都會重新執行這個查詢從而更新查詢結果。因此使用它時應盡量將他轉成數組在進行循環。

備註:getElementsByTagName()就相當於一個DOM操作,類似還有:getElementsById()等。。如果想優化頁面性能時,可減少這種查找DOM的操作,查找需要時間

前端頁面優化方案