2010-09-28 6 views
7

Je charge jQuery via le CDN de Google en utilisant le code suivant.jQuery via les bonnes pratiques de Google CDN

Ma question principale est ce qui se passera si un utilisateur accède à mon site et n'a pas encore jQuery pré-mis en cache. Va-t-il télécharger la version de Google et la mienne? Comment fonctionne la concurrence ici?

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

Merci.

+1

Une question que j'aurais est pourquoi avoir votre deuxième chèque de toute façon? Si Google est en panne, je suis à peu près sûr que la majeure partie de l'Internet est en train de baisser ... (Je plaisante à moitié). La redondance est-elle vraiment nécessaire? – JasCav

+1

@JasCav - Il y a, cependant une petite chance, que l'utilisateur ne peut pas accéder à «google.com», peut-être en Chine peut-être? Juste un exemple du haut de ma tête. –

+0

@JasCav: Un client une fois n'a pas pu accéder au script sur Google. Je ne connais pas exactement la raison, mais il vaut mieux prévenir, quelques lignes de plus ne feront pas de mal. – BrunoLM

Répondre

9

Dans votre exemple de code, ils vont télécharger la version google si ils ne l'ont pas déjà à cause d'un autre site. Puis si pour une raison quelconque google est en panne, ils vont télécharger votre version, ils ne téléchargeront pas les deux. Le second est seulement demandé si le premier (de Google) échoue.

Le contrôle va comme ceci:

  1. Avons-nous la version en cache google?
    • Oui - Ok, c'est bon, allez-y.
    • No - Téléchargez-le de Google, utilisez-le.
  2. Est-ce que jQuery (l'objet JavaScript) est défini?
    • Oui - ok il est bien chargé, le if() est faux, continuez.
    • Non - oh snap! Le chargement de Google a échoué, que ce soit à partir du cache ou de l'extraction, besoin de le charger depuis un autre emplacement
      • Chargez-le à partir de votre site via un nouveau tag <script> que vous venez d'ajouter.
+0

parfait. Aimez votre style de réponse. Exactement ce que je visais. Merci. – Frankie