2010-09-28 14 views
7

Sto caricando jQuery tramite il CDN di Google utilizzando il seguente codice.jQuery tramite Google Best practice CDN

La mia domanda principale è che cosa succederà se un utente raggiunge il mio sito e non ha ancora ottenuto j-cache pre-memorizzate. Scaricherà la versione di Google e la mia? Come funziona la concorrenza qui?

<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> 

Grazie.

+1

Una domanda che avrei è il motivo per cui hanno il tuo secondo controllo in ogni caso? Se Google non funziona, sono abbastanza sicuro che la maggior parte di Internet stia andando giù ... (sto solo scherzando). La ridondanza è davvero necessaria? – JasCav

+1

@JasCav - C'è, per quanto piccola possibilità, che l'utente non possa accedere a 'google.com', forse in Cina, forse? Solo un esempio dalla cima della mia testa. –

+0

@JasCav: un client non è stato in grado di accedere allo script su Google. Non conosco esattamente la ragione, ma è meglio prevenire, un paio di righe in più non faranno male. – BrunoLM

risposta

9

Nel codice di esempio scaricheranno la versione di google se non ce l'hanno già a causa di un altro sito. Quindi se per qualche motivo google non funziona, scaricheranno la tua versione, non scaricheranno entrambi. Il secondo è richiesto solo se il fallisce il primo (da Google).

Il controllo va in questo modo:

  1. Abbiamo la versione cache di Google?
    • - Ok, va bene, usalo.
    • No - Scaricalo da Google, usalo.
  2. È jQuery (l'oggetto JavaScript) definito?
    • - ok ha caricato bene, il if() è falso, continua.
    • No - oh scatto! Impossibile caricare Google, dalla cache o dal recupero, è necessario caricarlo da altrove
      • Caricare dal tuo sito tramite un nuovo tag <script> appena aggiunto.
+0

perfetto. Adoro il tuo stile di risposta. Esattamente quello a cui stavo mirando. Grazie. – Frankie