爲了提升網頁應用的加載速度,咱們會使用到瀏覽器緩存,然而瀏覽器緩存只能提高二次訪問的速度。對於加速首次訪問的速度,咱們最多見的手段則是使用 CDN 加速。html
CDN 的全稱是 Content Delivery Network,即內容分發網絡。經過將靜態資源緩存到離用戶很近的相同網絡運營商的 CDN 節點上,使用戶能夠就近取得所需的內容,解決網絡擁塞情況,提升用戶訪問網站的響應速度。前端
事實上,在一些較大型的公司來講,一般是由公司的運維開發人員來負責部署 CDN 服務的,前端人員只須要了解使用 CDN 服務的大體流程便可。瀏覽器
事實上,如今還有許多的 CDN 服務廠家,咱們須要根據需求的狀況去選擇相應的廠商。現階段 CDN 雲服務商的競爭已經由 技術 逐漸取代價格成爲 CDN 廠商在客戶談判時最關鍵因素,技術更高的 CDN 服務可以下降帶寬成本、提高用戶體驗。緩存
現在 CDN 各大廠商都會提供十分詳盡的接入文檔,使咱們接入的開發成本變得更低。這裏列舉國內比較出名的 CDN 廠商:性能優化
一般購買了 CDN 服務後,該 CDN 服務會提供相應的接口讓咱們去上傳和部署咱們的資源。這部分的工做一般是由咱們運維人員去負責的,對於一些小公司可能則須要前端或者後臺人員去負責鏈接 CDN 服務,使業務可以部署靜態資源到相應的服務器上。服務器
使用 CDN 服務,對前端工程產生了必定的影響,咱們須要對靜態資源的部署作兩項改變:網絡
因爲用戶的網絡線路有不少種,如網通、電信、移動等,爲了讓不一樣地區的用戶會訪問到離本身最近的相同網絡線路上的 CDN 節點。所以咱們須要將咱們的資源部署到不一樣的網絡線路的服務器中,而後經過這些服務器同步到不一樣線路的 CDN 節點上。運維
使用不一樣的域名來加載 CDN 服務的靜態資源,一方面便於接入爲 CDN 時設置 DNS 的智能解析。另外一方面當靜態資源和主頁面使用不一樣的域名,在加載靜態資源時 HTTP 請求並不會帶上主域頁面的 Cookie 等數據,較少了請求時的數據傳輸量,進一步加快網絡訪問。性能
一般狀況下,咱們的資源都是在本地,好比有個 JS 文件,咱們在 HTML 裏面按照相對目錄引用它:優化
<script src="js/script.js"></script>
使用了 CDN 的話,資源都部署到了 CDN 服務器上去咯,這個時候咱們必須用絕對路徑來引用:
<script src="http://xxx.xxx.xxx/js/script.js"></script>
全部啊,必須有個修正資源路徑的過程,而這個過程固然不能手動,一般都是在工程化裏面解決這個問題。
現在 CDN 服務基本上已經成爲現代大型網頁應用的標配。這項技術是一種十分經常使用的網絡性能優化手段。在將來的前端開發中,咱們會常常與 CDN 打交道。所以若是可以清楚瞭解了 CDN 服務的相關原理和概念,將會讓咱們在未來的開發中可以更加駕輕就熟。