2010-09-28 88 views
7

我使用下面的代碼通過Google的CDN加載jQuery。jQuery通過Google CDN最佳實踐

我的主要問題是如果用戶點擊我的網站,並且還沒有jQuery預緩存會發生什麼。他會下載Google版本和我自己的?這裏的併發性如何工作?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript"> 
    if(typeof jQuery == 'undefined') { 
     //<![CDATA[ 
     document.write("<script src='/includes/jquery-1.4.2.min.js' type='text/javascript'><\/script>"); 
     //]]> 
    } 
</script> 

謝謝。

+1

一個問題我本來就是爲什麼有你的第二次檢查呢?如果谷歌倒閉了,我很確定大部分互聯網都在下降......(我只是半開玩笑)。冗餘是否真的有必要? – JasCav 2010-09-28 17:08:30

+1

@JasCav - 用戶無法訪問google.com,也許在中國也許有一個機會,但有一點小的機會?只是我頭頂的一個例子。 – 2010-09-28 17:11:58

+0

@JasCav:有一次客戶端無法訪問Google上的腳本。我不知道確切的原因,但最好防止,多一些線不會傷害。 – BrunoLM 2010-09-28 17:14:12

回答

9

在您的示例代碼中,他們將下載谷歌版本,如果因爲其他網站而不具有該版本。然後如果由於某種原因谷歌停機,他們會下載您的版本,他們不會同時下載。如果第一個(來自Google)失敗,則第二個僅請求

支票是這樣的:

  1. 我們是否有谷歌的緩存版本?
    • 是的 - 好吧,去吧,使用它。
    • - 從谷歌下載它,使用它。
  2. 是否定義了jQuery(JavaScript對象)?
    • 是的 - 好吧,它加載罰款,if()是錯誤的,繼續。
    • - 哦!谷歌加載失敗,無論是從緩存或提取,需要從其他地方加載
      • 加載它從您的網站通過一個新的<script>標籤剛剛添加。
+0

完美。喜歡你的回答風格。正是我的目標。謝謝。 – Frankie 2010-09-28 17:35:08