2010-09-28 13 views
7

Estoy cargando jQuery a través del CDN de Google utilizando el siguiente código.jQuery a través de las mejores prácticas de Google CDN

Mi pregunta principal es qué sucederá si un usuario llega a mi sitio y aún no tiene JQuery almacenado previamente. ¿Descargará la versión de Google y la mía propia? ¿Cómo funciona la concurrencia aquí?

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

Gracias.

+1

Una pregunta que tengo es por eso que su segunda comprobación de todos modos? Si Google está caído, estoy bastante seguro de que la mayor parte de Internet se está cayendo con eso ... (Estoy bromeando medio en broma). ¿La redundancia es realmente necesaria? – JasCav

+1

@JasCav - Existe, aunque sea una pequeña posibilidad, que el usuario no pueda acceder a 'google.com', tal vez en China, ¿no es así? Solo un ejemplo fuera de mi cabeza. –

+0

@JasCav: un cliente una vez no pudo acceder al script en Google. No sé la razón exacta, pero es mejor prevenir, un par de líneas más no dolerá. – BrunoLM

Respuesta

9

En su código de ejemplo, descargarán la versión de google si ya no la tienen debido a otro sitio. Luego, si por algún motivo, Google está caído, descargarán su versión, no descargarán ambas. El segundo solo se solicita si falla el primero (de Google).

El cheque dice así:

  1. ¿Tenemos la versión en caché de Google?
    • - Ok bueno ir, úsalo.
    • No - Descárguelo de Google, úselo.
  2. ¿Se ha definido jQuery (el objeto JavaScript)?
    • - ok, cargó bien, el if() es falso, continúa.
    • No - oh snap! Ha fallado la carga de Google, ya sea desde el caché o la recuperación, necesita cargarlo desde otro lugar
      • Cárguelo de su sitio a través de una nueva etiqueta <script> recién agregada.
+0

perfecto. Me encanta tu estilo de respuesta. Exactamente lo que estaba buscando. Gracias. – Frankie