簡體   English   中英

來自CDN(Google)的流式jquery(JS文件)

[英]Streaming jquery(JS files) from a CDN (Google)

這是一個不做功課的情況。:-)

除了動態加載優勢之外,當我可以從我的服務器加載一個包含19kb jQuery zip文件+附加JavaScript代碼的單個文件時,從Google服務器中包含一個JavaScript庫(在我的情況下是jQuery)是否有意義?寫了 - 所有壓縮與JS壓縮器和HTTP放氣。

使用Google服務器,我將進行2次(並行)HTTP往返。 一個用於獲取jquery文件,另一個用於獲取站點JavaScript代碼。 一個19kb,另一個說20-25kb。 在正常情況下,從我的網站下載一次30-35kb。

考慮到從谷歌CDN下載的jQuery腳本可能已經緩存在訪問者的瀏覽器上,因為它具有一致的標頭和緩存控制,無論從哪里下載。 因此,平均而言,大多數用戶只需下載特定於站點的JavaScript腳本。 此外,CDN通常比單個服務器具有更快的響應時間,因為它們從距離您所在位置最近的服務器進行響應。

你的問題沒有簡單明了的答案,因為這兩種方法都能在現代連接上提供良好的性能。 您應該在脅迫下對系統進行分析,看看哪種解決方案能夠提供最佳結果(如果需要進行此類優化)。

您確定要並行下載腳本嗎? 這個來自Cuzillion的例子似乎在說只有IE8可以做到這一點。

另外值得一提的是,您的網頁瀏覽量中有多少是第一次訪問者以及有多少訪問過該網站,以幫助您確定緩存會影響下載時間。 如果您有大量的首次訪問者,可能值得傾斜它們有利於盡可能快地獲得第一次體驗。

httpwatch對來自谷歌的js文件進行的基准測試。

http://blog.httpwatch.com/2008/11/27/google-adds-https-support-to-the-ajax-libraries-api/

在我看來,使用着名的jQuery CDN (例如Google)並沒有任何明顯的缺點,並且有一些潛在的好處,所以我個人傾向於采用CDN方法。 如果不出意外的話,那就是我不得不擔心和維護作為源樹的一部分的文件。

我看到使用CDN與單個胖JavaScript存檔有幾個優點:

  • 減少檢索未緩存資源的延遲,因為這些資產是從邊緣位置提供的
  • 對於第三方腳本,用戶的瀏覽器可能已經將它們緩存,並且不必再為您的站點下載它們。
  • 通過在多個主機名之間分配資產來解決並行請求的每個主機瀏覽器限制(當然,這也可以通過您自己的服務器使用簡單的子域技巧完成)。
  • 減少主服務器上的總體負載,尤其是 在高峰使用期或YC / Slashdot“攻擊”期間非常重要。

何時關注HTML頁面資產的下載時間:

  • 當您有大量首次訪問者時(來自搜索引擎和/或社交媒體)。 研究表明,這些天人們不是很耐心,所以你真的需要不遺余力地給人留下良好的第一印象。 (另見雅各布尼爾森關於頁面放棄答案引擎響應時間的文章。)
  • 對於使用移動設備的訪客。 移動數據網絡通常很慢和/或擁塞。
  • 對於實行持續交付並導致資產頻繁流失的商店(對於全新的網站和應用程序更常見)

PS - Aaron Hopkins有一篇關於優化頁面加載時間的文章,我見過。 有點過時了,但仍然相關。

PSS - 你可能想看看Zepto,一個輕量級(24K vs 100K),api兼容的jQuery替代品。

這是一個真正的問題嗎? 只需確保HTTP標頭中的Cache-Control已正確配置,最終用戶的客戶端只會將其拉出一次。 這是一個絕對微不足道的數據量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM