Grado de Multimedia Universitat Oberta de Catalunya
Programación web Grado de Multimedia

Uso de CDNs con alternativa de carga local

Marcos

En la actualidad es muy habitual hacer uso de librerías de terceros para aprovecharnos de las funcionalidades específicas que nos pueden aportar, como por ejemplo en aspectos como: animación, gestión de fechas, acceso y manipulación del DOM, trabajo con mapas, apis de redes sociales, etc. Esto hace que no sea extraño que en proyectos de determinada complejidad se empleen incluso decenas de librerías de terceros.

Por otro lado son conocidos los beneficios de usar una CDN para la carga de las librerías que cuentan con ella, por lo que se hace muy habitual el uso de este mecanismo en proyectos web, para mejorar la carga de nuestras páginas aprovechando las bondades de estos sistemas.

Pero cuando hacemos esto no deberíamos olvidar que cada CDN que usamos, si no le damos una alternativa local, pone en riesgo la estabilidad de nuestro proyecto, ya que será una dependencia que puede degradar el funcionamiento de la web o aplicación, o incluso bloquearlo. Es decir, si hacemos uso intensivo de jQuery, y lo cargamos con una CDN sin tener una versión «alternativa» local, y dicha CDN deja de estar disponible nuestro proyecto dejará de funcionar con casi toda seguridad porque «un tercero» ha caído. Si extrapolamos esta situación a varias librerías, nuestro proyecto tendría multitud de puntos críticos cuando en realidad solo debería tener uno, su propio servidor.

Para ello se aplica una técnica conocida como «fallback» que permite intentar cargar la librería desde la CDN, y si detectamos que no ha cargado correctamente, cargar la versión local que tengamos. Siguiendo el ejemplo de jQuery, esta buena práctica que os comentamos, se traduciría en este código:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script>if (!window.jQuery) { document.write('<script src="/path/to/your/jquery"><\/script>'); }
</script>