[javascript] 你從哪裡包含jQuery庫? Google JSAPI? CDN?



7 Answers

您可能希望在外部服務器上託管的一個原因是要解決瀏覽器對特定服務器的連接的限制。

但是,由於您使用的jQuery文件可能不會經常更改,因此瀏覽器緩存將會啟動並使這一點在大多數情況下毫無意義。

在外部服務器上託管它的第二個原因是降低到您自己的服務器的流量。

但是,考慮到jQuery的規模,它很可能只是您流量的一小部分。 您應該嘗試優化您的實際內容。

Question

有幾種方法可以包含jQuery和jQuery UI,我想知道人們在使用什麼?

  • Google JSAPI
  • jQuery的網站
  • 你自己的網站/服務器
  • 另一個CDN

我最近一直在使用Google JSAPI,但發現設置SSL連接需要很長時間,甚至只能解決google.com。 我一直在使用Google的以下內容:

<script src="https://www.google.com/jsapi"></script>
<script>
google.load('jquery', '1.3.1');
</script>

我喜歡使用Google的想法,以便在訪問其他網站時緩存它,並節省我們服務器的帶寬,但如果它仍然是網站的緩慢部分,我可能會更改包含。

你用什麼? 你有什麼問題嗎?

編輯:剛剛訪問jQuery的網站,他們使用以下方法:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

Edit2:下面是我在去年一直在包含jQuery的過程中沒有任何問題:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>

區別在於刪除http: 通過刪除它,您不必擔心在http和https之間切換。




除了建議將其託管在自己的服務器上的人之外,我還建議將其保留在單獨的域(例如static.website.com)上,以允許瀏覽器將其與其他內容線程分開。 這個技巧也適用於所有靜態的東西,比如說圖片和CSS。




優點:Google上的主機有好處

  • 可能更快(他們的服務器更加優化)
  • 他們正確地處理緩存 - 1年(我們很難被允許進行更改以在我們的服務器上獲得標題)
  • 在另一個域上已經有谷歌託管版本鏈接的用戶已經在緩存中擁有該文件

缺點:

  • 某些瀏覽器可能將其視為XSS跨域並禁止該文件。
  • 特別是運行Firefox的NoScript插件的用戶

我想知道你是否可以從Google包含INCLUDE,然後檢查是否存在某個全局變量,或者某些情況,以及是否存在來自服務器的負載?




如果我對“實時”網站負責,我最好意識到所發生的一切以及進入我的網站。 出於這個原因,我自己或者在同一台服務器上或者靜態/外部服務器上託管jquery-min版本,但是無論哪種方式,只有我(或者我的程序/代理)可以在驗證/測試每一次更改後更新庫




我可能對此有點老派,但我仍然對盜鏈感到不滿。 也許Google是個例外,但總的來說,將文件託管在您自己的服務器上確實是一種很好的舉止。




我只是包括jQuery網站的最新版本: http://code.jquery.com/jquery-latest.pack.js : http://code.jquery.com/jquery-latest.pack.js它適合我的需求,我從不擔心更新。

編輯:對於一個主要的網絡應用程序,肯定控制它; 下載並自己提供。 但對於我的個人網站,我無所謂。 事情不會奇蹟般地消失,它們通常先被棄用。 我保持足夠的了解,知道未來版本要改變什麼。




我把它與我的其他js文件放在我自己的服務器上,這就是這一點,將它們結合起來並縮小它們(用django-compresser,在這裡,但這不是重點)只能作為一個js文件服務,需要投入它。 您無論如何都需要為自己的js文件提供服務,所以我沒有理由不在其中添加額外的jquery字節 - 更多的kbs傳輸便宜得多,而不是更多的請求。 你不依賴任何人,只要你的js被緩存了,你的速度也會非常快。

在第一次加載時,基於CDN的解決方案可能會贏,因為您必須從您自己的服務器中加載額外的jquery千字節(但沒有額外的請求)。 不過,我懷疑這種差異是不明顯的。 然後,在第一次加載清除緩存的情況下,由於需要更多的請求(和DNS查找),您自己的託管解決方案可能會更快,以便獲取CDN jQuery。

我想知道這個問題幾乎從未被提及過,以及CDN如何接管世界:)




如果您想使用Google,那麼直接鏈接可能會更具響應性。 每個庫都有為直接文件列出的路徑。 這是jQuery路徑

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>

剛剛重讀你的問題,你有使用https的理由嗎? 這是Google在其示例中列出的腳本標籤

<script src="http://www.google.com/jsapi"></script>
<script>



Related