viernes, 21 de febrero de 2014

jQuery CDN o hosting local de las librerías

El CDN nos ofrece una manera más optimizada de incluir las librerías jQuery. Ventajas e inconvenientes de la opción de alojar el código del framework jQuery en local o enlazarlo desde uno de los servicios CDN.
Como hemos visto en nuestro Manual de jQuery, el primer paso para poder trabajar con este framework Javascript es incluir el script de la librerías en el HEAD de nuestra página. Esto no tiene ningún misterio, pero sí que hay algún detalle interesante que podemos tener en cuenta para optimizar la descarga de nuestro sitio web. Se trata de utilizar el servicio CDN de jQuery, o de otros proveedores como Google Code, lo que nos ofrecerá ventajas, aunque también en algún caso, posibles inconvenientes.
CDN significa Content Delivery Network, que se traduciría como red de entrega de contenido y no es otra cosa que un servicio que nos permite incluir las librerías de código de jQuery desde los servidores de algunas importantes empresas. jQuery no es el único que utiliza estos sistemas para distribuir sus paquetes de código, sino que es ampliamente utilizado por diversos frameworks y librerías del entorno web.
En resumen, cuando usamos un CDN, en vez de enlazar con los scripts de jquery alojados en nuestro sitio web, linkamos directamente con una URL de otro dominio que los aloja por nosotros. Esto no se hace por ahorrar espacio, sino por disponer de una mayor velocidad de entrega de nuestro sitio. Lo explicaremos detalladamente por medio de una serie de ventajas más adelante en este artículo.

Servicios CDN de jQuery

Diversas empresas ofrecen el código de jQuery para enlazarlo en nuestros sitios web basados en el framework. Los podemos enlazar directamente de esos servidores, haciendo lo que se denomina "hotlinking". En este caso, sería un hotlinking deseable, puesto que estos servidores CDN están pensados justamente para ello.
Nota: Hotlinking es una técnica que podríamos traducir como "linkado caliente" y se refiere a enlazar un recurso externo con la URL de otro servidor, de otro dominio. Esto no es muy deseable en recursos como imágenes, pues en lugar de descargarlas desde nuestro propio dominio, los visitantes, al entrar en nuestra web, las obtendrían desde dominios de otros proveedores, lo que se puede considerar como un robo de ancho de banda.
Google Code: Contiene links a los frameworks Javascript más populares, con CDN de jQuery, Mootools, Prototype y muchos otros.
En el momento de escribir este artículo, la más nueva versión que ofrecen como hosting CDN es 1.7.1 y se podría enlazar en la URL http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
Microsoft CDN: Dispone de una red de contenido distribuido con CDN de varias librerías Javascript y Ajax, como jQuery o Modernizr. Encontramos más información en la dirección http://www.asp.net/ajaxlibrary/cdn.ashx
La última versión que está disponible en estos momentos sería http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js
CDN jQuery: el propio jQuery ofrece una red CDN para descarga de sus librerías, a partir de la ruta http://code.jquery.com/jquery-1.7.1.min.js
Nota: Los CDN tienen habitualmente soporte para transferencia de las librerías por HTTP y HTTPS, así como para la descarga de las librerías en versión minimizada (indicada para sitios en producción) o estándar (indicada para sitios en desarrollo). Debes consultar los servicios CDN para obtener más información.

Ventajas e inconvenientes de los CDN

En la mayoría de los casos, usar un servidor CDN es una buena idea, por diversos motivos, entre los que podríamos resumir:
  • Mayor velocidad de entrega: Los servicios CDN están ofrecidos por grandes empresas, con replicación de servidores y diversas localizaciones de entrega a lo largo del mundo. Posiblemente Google, o cualquiera de los otros provedores CDN, pueda enviar el script jQuery más rápido que tu propio servidor y lo distribuya desde una localización más cercana a la red del cliente que te visita.
  • Cacheado probable: Es muy probable que la persona que te visita ya haya cacheado el script jQuery, tras la visita a otra página web que esté usando también el CDN de alguna de estas empresas. Por ello quizás no tenga ni que esperar a que descargar el framework y utilice la copia que ya tiene en la caché del navegador.
Como todo en la vida, también podemos encontrar algunos inconvenientes:
  • Necesitamos estar conectados a Internet para acceder al CDN: Durante el desarrollo del sitio web, si estamos offline, sería imprescindible acceder a la copia en local de las librerías para que nuestra web funcione. Si necesitamos probar la web en entornos donde quizás no dispongamos de Internet (por ejemplo, la oficina de un cliente donde no sabemos si van a estar "online"), nos interesaría acceder a las librerías por medio de la copia en local.
  • Tenemos menor control: No puedes tener total control sobre lo que estás trayéndote como script. Claro que el script estará correcto, pero no podrás modificarlo si lo necesitas, ya que está en otro servidor. Esto generalmente no será un problema, pero hay algunos marcos en los que en la práctica sí interesa tener un poco más de control. Por ejemplo, en el caso de algunas librerías que permiten incluirse solo parcialmente (por ejemplo en Mootools somos capaces de seleccionar qué módulos del framework deseamos, o en jQueryUI qué widgets queremos utilizar), no será posiblea través de la versión que nos traemos por el CDN.

CDN más fácil y mejor, pero todavía se puede optimizar más

Como habrás podido comprobar, en la mayoría de los casos, utilizar un hosting CDN es una opción. Sin duda, las ventajas en este caso superan a los inconvenientes, sobre todo para sitios que están en producción.
Sin embargo, todavía se puede optimizar un poco esta situación y crear un script sencillo que permita hacer una combinación entre las dos opciones, es decir, el hosting CDN cuando esté disponible y el hosting local en los casos en los que no esté activo el servidor CDN por cualquier motivo
Fuente:enlace


No hay comentarios:

Publicar un comentario

Entradas populares