Web前端性能優化css
通常說來Web前端指網站業務邏輯以前的部分,包括瀏覽器加載、網站視圖模型、圖片服務、CDN服務等。主要優化手段有優化瀏覽器訪問、使用反向代理、CDN等。前端
1、瀏覽器訪問優化瀏覽器
減小http請求:緩存
HTTP協議是無狀態的協議,意味着每次HTTP請求都須要創建通訊鏈路、進行數據傳輸,而在服務器端,每一個HTTP都須要啓動獨立的線程去處理。安全
減小HTTP的主要手段是:性能優化
a) 合併CSS服務器
b) 合併JavaScript網絡
c) 合併圖片前端性能
一、 使用瀏覽器緩存函數
對於一個網站來講,CSS、JavaScript、Logo、圖標這些靜態資源文件更新的頻率都比較低,而這些文件又幾乎是每次HTTP請求都須要的,若是將這些文件緩存在瀏覽器中,能夠極好地改善性能。經過header函數設置HTTP頭中Cache-Control和Expires的屬性,可設定瀏覽器緩存,緩存時間能夠是數天、甚至是幾個月。
例子:header('Cache-Control: max-age=3600*24');//緩存1天,表示最大生存期是1天,超過1天瀏覽器必須去服務器從新讀取,這個時間是從用戶第一次讀取頁面時開始計時的
在某些時候,靜態資源文件變化須要及時應用到客戶端瀏覽器,這種狀況,可經過改變文件名或者給文件名加上版本實現。
<link href=」/c/style.css?version=2」 />
二、CSS放在頁面最上面,JavaScript放在頁面最下面
瀏覽器會在下載完 所有CSS以後纔會對整個頁面進行渲染,所以最好的作法是將CSS放在頁面最上面,讓瀏覽器儘快下載CSS。JavaScript則相反,瀏覽器在加載JavaScript後當即執行,有可能會阻塞整個頁面,形成頁面顯示緩慢,所以JavaScript最好放在頁面最下面。
三、減小COOKIE傳輸
COOKIE包含在每次請求和響應中,太大的Cookie會嚴重影響數據傳輸,所以要儘可能減小Cookie中傳輸的數據量。
2、CDN加速
CDN(Content Distribute Netword,內容分發網絡)的本質依然是一個緩存,並且將數據緩存在離用戶最近的地方,使用戶以最快速度獲取數據。
CDN可以緩存的通常是靜態資源,如圖片、文件、CSS、JavaScript腳本、靜態網頁等。因爲這些文件訪問頻率很高,將其緩存在CDN可極大改善網頁的打開速度。
3、反向代理
反向代理的做用:一、保護網站服務器安全 二、加速Web請求響應速度
傳統代理服務器位於瀏覽器一側,代理瀏覽器將HTTP請求發送到互聯網上,而反向代理服務器位於網站機房一側,代理網站Web服務器接受HTTP請求。
和傳統代理服務器能夠保護瀏覽器安全同樣,反向代理服務也具備保護網站安全的做用,來自互聯網的訪問請求必須通過反向代理服務器,至關於在Web服務器和可能的網絡攻擊之間創建了一個屏障。
除了安全功能,反向服務器也能夠經過配置緩存功能加速Web請求。當用戶第一次訪問靜態內容的時候,靜態內容就被緩存在反向代理服務器上,這樣當其餘用戶訪問該靜態內容的時候,就能夠直接從反向代理服務器返回,加速Web請求響應速度,減輕Web服務器負載壓力。