(轉)CDN——到底用仍是不用?

用CDN的七個理由css

  1. 瀏覽器從服務器上下載css、js和圖片等文件時都要和服務器鏈接,而大部分瀏覽器對同一個域名用於下載文件的併發鏈接數限制在4個,這意味着若是要下載第五個文件就必須等前四個文件中有一個已經加載完成,假如前4個文件都很大,第五個文件就要等好久,整個網頁的加載速度就受限於此了。用CDN就能夠經過不一樣的域名來加載文件,從而使下載文件的併發鏈接數大大增長。
  2. jQuery一類的庫文件如今被普遍使用,若是訪問你網站的用戶的瀏覽器以前在訪問別的網站時經過和你相同的CDN已經加載了jQuery,因爲jQuery文件已經被緩存了,就不用從新下載了。
  3. 也許你的網站主機性能很好,可是應該不會比Google、Microsoft和Yahoo等大公司的容量和可擴展性更高,他們提供的CDN具備更好的可用性,更低的網絡延遲和丟包率。
  4. CDN能提供本地的數據中心,這樣一來,那些遠離你網站主服務器的用戶也能就近很快地下載文件。
  5. 讓你可以鏈接到特定版本的css文件或者js庫文件,能夠根據需求請求最新的版本。
  6. 不少商業付費的CDN能提供使用報告,這能夠做爲你本身網站分析報告的補充。
  7. CDN可以分配負載,節省帶寬,提升你網站的性能,下降你網站託管的成本,一般是免費的。

不用CDN的七個理由jquery

  1. 在開發階段若是處在斷網環境下,CDN文件是沒法加載的。
  2. 一些免費CDN提供的文件多是功能完整的包或者庫文件, 可能超過幾百kb的大小,而許多時候網站只須要使用其中部分,你可使用本身優化過、更小的css和js文件,讓用戶下載和執行的更快,固然你能夠把本身的文件放到私人的CDN上,但這會須要額外的工做量和花費。
  3. 儘管一些流行的CDN文件事先緩存過的概率較大,但並非必定的,一些移動設備的緩存可能很小並且效率很低,CDN的優點就不明顯了,特別是當你能夠在本地服務器上存放比CDN文件更小的文件時。
  4. 因爲地理、法律、政策和商業上的阻隔,你所在的地區可能屏蔽了一些流行的免費CDN服務的域名或者IP地址。
  5. CDN會有出故障的時候,這時候要有備用方案,也就是你的本地文件,這種處於穩定考慮的冗餘會增大開發工做量和複雜度。
  6. 若是安全性對你的網站很重要,就不要使用公共的CDN,由於當你遠程從CDN請求文件時,你的訪問來源信息也被髮送過去,一些遠程的js文件可能被修改用來蒐集你的用戶或者系統信息,而當你使用https協議時,能選擇的CDN就更加有限。
  7. 當你把文件控制交給Google、微軟、亞馬遜或者其餘大的互聯網公司時,你會考慮他們對你信息的蒐集整理嗎,這也許是多慮了,可是在互聯網這一行裏多一點這樣的懷疑並不壞。

你到底要不要用CDN呢ajax

  1. 幾種明確不應用CDN的狀況:api

    1. 你構建的是內部網絡應用,不與外部Internet鏈接;
    2. 像銀行系統這樣的應用,安全和隱私是最優先考慮的,就要讓全部源文件和服務器位置徹底處於本身掌控中;
    3. 你爲公司或者國家開發的應用,而他們剛好對某些CDN的域名或者IP地址限制訪問。
  2. CDN對低流量的小網站性能提高並不明顯,若是沒有須要高帶寬的視頻、音頻文件,把你的文件放在一塊兒可能還更簡單。瀏覽器

  3. 對流量高的網站,CDN能夠大大提高性能,但假如你的用戶以移動設備爲主,可能本身優化過的小文件比CDN上的大文件要下載和執行的更快。緩存

  4. 在實際中經過JavaScript蒐集用戶分別使用CDN文件和本地服務器文件時加載頁面的速度,以決定一段時間內是選擇CDN仍是本地文件。安全

  5. 對於重要的文件,最好仍是提供本地文件的冗餘,以應對CDN文件不可用的狀況。以jquery爲例:服務器

    <script src="https://ajax.googleapis.com/ajax/libs/jquery1.4.3/jquery.min.js"></script>
    <script>
      !window.jQuery && document.write("<script src=\"scripts/jquery-1.4.3.min.js\">" + "<\/scrript>") </script>

    這裏經過判斷window.jquery全局對象是否存在來判斷jQuery是否經過CDN加載成功,不成功就經過document.write方法來加載本地的jQuery文件,注意這裏用到了轉義字符‘\’避免瀏覽器將document.write方法內的「</script>」當成告終束標籤。網絡

  6. 一些對系統並非相當重要的文件諸如字體文件、css重置、js小插件、背景圖片等可能適合使用CDN,由於即便CDN文件不可用,網站也能作到平穩退化。

總結併發

看到這裏,我想你也以爲CDN是好的,只是要把它用好,仍是應該遵循前面講到的一些原則,簡單的說,在實踐中,一些流行的庫文件和字體文件使用CDN是好的,對於大型網站來講,使用私有CDN也能極大提高速度和下降成本,但若是你的應用對安全、隱私和可靠性要求較高,那就要在CDN的性能提高和安全考量之間作一下權衡了。


做者: 種子_fe 
連接:http://www.imooc.com/article/13673?block_id=tuijian_wz來源:慕課網

相關文章
相關標籤/搜索