Usa el jQuery de Google, anda

Al programar usando jQuery es lo común colgarlo de un directorio del proyecto e invocarlo con el clásico:

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>

Sin embargo un artículo que leí hace algún tiempo [Encosia.com] recomienda evitar esa práctica, y utilizar el jQuery que Google cuelga de sus servidores y usa para sus propios sitios web. De esta manera:

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

Dave Ward, el autor, lo razonaba con tres sólidos argumentos:

  • Tu página cargará antes. jQuery es una librería pesada y, asúmelo, siempre se cargará antes desde un servidor de Google (un señor servidor) que desde el tuyo.
  • ¿He dicho ya que tu página cargará antes? Mientras el navegador lee jQuery desde el servidor de Google, puede ir cargando el resto de la web que sí están en tu servidor. Simultáneamente. Eso es un gran ahorro de tiempo.
  • Tu página (y todas nuestras páginas) cargarán antes. Cuando forzamos la carga de un jQuery nuevo en cada web, estamos llenando la caché de los navegadores de material redundante. Pero si en vez de eso llamamos siempre al mismo jQuery de Google, si todos los hiciéramos, los navegadores no necesitarían cargar jQuery porque ya lo tienen.

Me convenció aquel artículo así que de un tiempo a esta parte procuro no apuntar hacia un jQuery en mi servidor, sino al que alberga Google en sus servidor de APIs.

No obstante, con un proyecto web en el que uso esta técnica me pasó una cosa curiosa el otro día. Durante un viaje en tren aproveché para programar un rato y al no tener acceso a Internet el jQuery de Google, claro, no cargaba y por consiguiente no podía trabajar.

La solución fue obvia: Temporalmente cambié esa línea, dejando de apuntar al servidor de Google para apuntar a un jQuery local.
Y viendo que esto podía sucederme de nuevo en el futuro, opté por algo también obvio, que es mantener ambas líneas en el código de la página y comentar la que sobra según la situación. Nada del otro mundo.

Pero luego me empeñé en perfeccionar un poco la cosa y salió esto:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">if(typeof jQuery==='undefined'){document.write(unescape("<scri"+"pt src='js/jquery-1.3.2.min.js' type='text/javascript'></scri"+"pt>"));}</script>

Utilizando este código me despreocupo totalmente del tema. ¿Que encuentra el jQuery de Google? Lo usa. ¿Que no? Pues usa el jQuery local.


Acerca de esta entrada