2016-09-19 28 views
1

我剛剛開始我的冒險與前端,最有可能與網頁設計。我一直在努力回答一個技術問題,但我找不到合理的答案。從外部或內部來源加載網站的庫,腳本等?

有這麼多的庫你可以加載,下載,使您的網站更快地開發。所以有我的問題。 下載這些庫(比如Boostrap,jQuery,Angular,谷歌等等的字體)並將它們(從外部)從官方源代碼下載或下載,上傳到您的服務器,然後鏈接到位置文件(內部源)在你的服務器上?

我的想象告訴我,如果我將它們下載並上傳到我的服務器上,那麼鏈接到它會使整個網站加載更快。這是一個好的想法嗎?

回答

0

有時,如果您從外部來源進行鏈接,實際上可能會更快。這是因爲瀏覽器存儲了最近訪問的數據,許多網站使用Bootstrap,jQuery等。它可能不會經常發生在不太受歡迎的圖書館。

請記住,由於您是從外部來源下載的,因此您將受到其服務器的擺佈。如果由於某種原因或其他原因脫機,您的頁面將無法正常工作。因爲這個原因,CDN不應該脫機,但很好意識到這一點。此外,當/如果您脫機並在您的頁面上工作,您將無法在開發過程中進行連接。

0

專業的託管服務,並鏈接到外部資源(可能它是JS庫,圖像或其他):

  1. 傳播負載:你的服務器沒有服務的所有內容,就可以集中精力其主要功能併爲應用程序本身提供服務。
  2. 傳播HTTP連接:由於越來越多的異步工作應用程序,使用每個站點/子域的最大並行HTTP連接傳遞應用程序數據並從其他服務器加載所有必需的附加資源是一件好事。
  3. 作爲Rafael上面提到的,CDN規模非常好,很少下線。

缺點

  1. 即使有快速的互聯網連接有一個高的機會,資源將更快地服務時,他們都位於相同的局域網絡。這就是爲什麼一些公司在其本地網絡內部擁有自己的「Micro-CDN」,以結合多個服務器的優勢和本地可用性。
  2. 外部依賴性:只要Internet連接不可用或代理服務器關閉,所有外部資源就會變得不可用,導致應用程序處於故障狀態。
0

如果您正在開發一些應用程序以獲得更高的安全性,以便您不必依靠託管CDN的任何第三方服務器,則最好在本地下載這些文件。

談論使用CDN的性能可能是有益的,因爲您需要的庫可能會緩存在瀏覽器中,因此保存獲取文件的時間。但是,如果文件在本地可用,則加載這些文件肯定需要時間和空間。

https://halfelf.org/2015/cdn-vs-local/

https://www.sitepoint.com/7-reasons-not-to-use-a-cdn/

0

我同意上述拉斐爾的答案,但要注意本地服務了這些庫,他或她省略了幾個好處。

它仍然被認爲是最佳實踐(直到HTTP2變得普遍),試圖通過將多個文件連接成一個文件來最大限度地減少您的網站下載量。 SO--如果您使用的CDN是三個單獨的腳本元素,並將三個獨立的.js文件拖放到一起,那麼您使用三個Javascript庫/框架(例如Angular,jQuery和Moment.js)。但是,如果您在本地託管它們,則可以讓構建過程包含一個步驟,將三個庫一起捆綁到一個名爲「vendor.js」的文件中,或者沿着這些行進行捆綁。這在一定程度上簡化了依賴加載的額外好處,因爲如果需要的話你可以按特定順序連接它們。最後,如果你剛剛入門,雖然它有點高級,但如果你正在考慮用你的項目託管你的庫文件,它肯定會值得研究一下(https://bower.io/docs/api/) - 它是一個節點構建工具,允許您定義需要包含在您的項目中的包,然後使用單個命令安裝它們 - 對於將不必要的庫文件保留在版本控制之外特別有用。祝你好運!

+0

非常感謝您的建議!我一定會看到涼亭。 – xeho91