互聯網時代網站如何優化才能脫穎而出?
網站可以使用js來測試性能,console.time()、console.timeEnd()。網站性能優化主要以下幾個方面:純屬手寫,支持下
1. 盡量減少HTTP請求次數 合并js 合并css 圖片sprite
2. 延遲加載內容 圖片懶加載 數據懶加載(點擊查看更多) 功能懶加載(曝光或者點擊后加載html模塊、js功能模塊)
3. 使用離線緩存 把常用的變動又少的js、css、圖片存儲到localstorage,第二次訪問的時候直接走本地緩存。在移動端使用廣泛。
4. CSS、JS放置正確位置 把css放在head中,保證頁面看到的時候樣式是對的。 把js放到body里最后位置,防止加載js阻塞頁面。
5. 靜態資源壓縮 圖片、CSS、JS在發布前要壓縮。
6. 靜態資源使用多個域名 對于圖片、CSS、JS,可使用幾個域名,可以并發加載。
7. 靜態資源使用cdn存儲 用戶與你網站服務器的接近程度會影響響應時間的長短。 可以把靜態資源放到內容分發網絡(Content Delivery Network,CDN)中加快訪問速度。
8. 預加載 在某個功能還沒展現時,在空閑時間預先加載相關圖片或者js代碼
9. DOM操作優化 使用JavaScript訪問DOM元素比較慢,因此為了獲得更多的應該頁面,應該做到: 緩存已經訪問過的有關元素 線下更新完節點之后再將它們添加到文檔樹中 避免使用JavaScript來修改頁面布局
10. 優化算法 在js處理中優化查找、排序算法。盡量少使用嵌套循環。 使用事件代理 有時候我們會感覺到頁面反應遲鈍,這是因為DOM樹元素中附加了過多的事件句柄并且些事件句病被頻繁地觸發。這就是為什么說使用event delegation(事件代理)是一種好方法了。如果你在一個div中有10個按鈕,你只需要在div上附加一次事件句柄就可以了,而不用去為每一個按 鈕增加一個句柄。事件冒泡時你可以捕捉到事件并判斷出是哪個事件發出的。 你同樣也不用為了操作DOM樹而等待onload事件的發生。你需要做的就是等待樹結構中你要訪問的元素出現。你也不用等待所有圖像都加載完畢。 你可能會希望用DOMContentLoaded事件來代替 事件應用程序中的onAvailable方法。