Sirviendo JQuery de Forma Segura


En otro artículo titulado Hablando de Google CDN Lorey nos explica las ventajas de utilizar el CDN de Google sobre servir las librerías desde nuestro propio servidor. Y aunque esta en lo correcto y es además lo mas recomendable, también es necesario tener un truco bajo la manga en caso de que un día el CDN falle, como es conocido en ingles un mecanismo de fallback. El hecho de que un CDN falle en realidad no es muy común pero uno nunca sabe.

Google hostea una variedad de librerías las cuales puedes encontrar en su devguide, estas incluyen AngularJS, MooTools, Prototype, ExtJS y Jquery por solo mencionar algunas de las más utilizadas. Ahora , ¿ Alguna vez te has puesto analizar que estas dependiendo completamente de un enlace externo para cargar recursos necesarios en tu sitio?. Bueno, como dije antes utilizar el siguiente código no tiene nada de malo:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.x.x/jquery.min. js"></script>

Pero que tal si en vez de ese, utilizamos el siguiente:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.x.x/jquery.min.js"></script> 
<script>window.jQuery || document.write('<script src="js/vendor/
jquery-1.x.x.min.js"></script>')</script>

Notaste que además de llamar al Google CDN, también estamos intentando cargar una copia local de JQuery desde nuestro servidor, y esto lo hacemos como había mencionado antes en el caso de que algún día ese CDN del cual nos apoyamos tanto falle.
La línea window.jQuery || document.write(…) hace 2 cosas.

  • Chequea si el Objeto JQuery existe: y en caso de existir significa que fuimos capaces de cargar JQuery desde el CDN.
  • Si el objeto window.jQuery no existe: Esto quiere decir que el CDN no se cargo correctamente, por lo tanto inmediatamente proseguimos a cargar nuestra copia local de la librería

Como puedes ver con esta técnica nos aseguramos que hasta en el raro caso de que el CDN falle nuestra librería sea cargada y así nuestra página o aplicación web pueda hacer uso de ella. Ten en cuenta además que esta técnica no solo es válida para JQuery sino que también puede ser aplicada a otras librerías JS aunque no sea utilizando la misma técnica exactamente.

Sin más a continuación les dejo de paso una lista de algunos de los CDNs más populares desde donde pueden cargar sus librerías JS.

Si conoces algunos otros que quieras compartir las puedes dejar en la sección de comentarios.

Dimitri

Dimitri

CEO & Founder at MyCyberAcademy
Estudiante de Ingenieria de Software. Fundador de MyCyberAcademy. Lo encontrarás frente a su computador escribiendo código o jugando con algún nuevo framework de PHP. En sus ratos libres monta vela o bicicleta de montaña.
Dimitri
Categories