Gerardo Contijoch

Experiencias del día a día trabajando con .NET – ASP.NET, C#, ASP.NET MVC y demas…

Ventajas y desventajas del uso de Google como host de librerías javascript

Posted by Gerardo Contijoch en abril 20, 2009

Hoy en día es muy común encontrar sites que dependen de librerías javascript populares como jQuery, prototype o script.aculo.us. Normalmente estos archivos se encuentran almacenados junto al resto de las páginas de un site, lo cual puede traer consecuencias negativas.

Una de las grandes desventajas de hacerlo así es que por cada site que visitemos (y que use alguna de estas librerías), vamos a estar bajando las mismas librerías una y otra vez. Esto se debe a que para nuestros browsers los archivos http://www.misite.com/scripts/jquery.js y http://www.otrosite.com/scripts/jquery.js son archivos diferentes y en realidad lo son, su contenido puede ser el mismo, pero son dos archivos diferentes. Es por ello que si visitamos ambos sites, vamos a estar bajando dos veces el mismo contenido.

Para solucionar este problema (que puede no serlo, en ciertos casos este comportamiento es deseable), podemos recurrir a la ayuda de Google, quien hostea algunas de las librerías javascript más populares. Siguiendo con el ejemplo planteado, para referenciar a la librería de jQuery (versión 1.2.6 en este ejemplo) simplemente tenemos que usar la URL http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js (URL de la versión comprimida de jQuery, podemos quitar el .min para referenciar a la versión estándar, lo cual no sugiero).

De este modo, si www.misite.com y www.otrosite.com usan la misma referencia, nuestro browser va a bajar solo una vez el archivo .js, aumentando la velocidad de carga de los sites (debido a que ya vamos a tener en el caché el archivo bajado).

Y eso no es todo, ya a que si estamos bajando el archivo desde un server diferente al que hostea nuestro site, los browsers modernos pueden bajar las librerías paralelamente a los archivos de nuestro site gracias al multithreading. Si los archivos se encontraran en el mismo server, la cantidad de bajadas simultáneas se vería reducida para evitar la sobrecarga del mismo.

Otro beneficio de usar Google como host es que los archivos que bajemos de ahí, los vamos a estar bajando de servers posiblemente más veloces y en redes con mayor ancho de banda que los nuestros.

Siempre hay un pero

Usar esta técnica tiene sus desventajas también, como lo muestra Derek Allard en este post. La primera de ella es ¿qué sucede si hay un problema con los servidores de Google? Pues simplemente no vamos a tener acceso a las librerías de las cuales depende nuestro site. Derek propone una solución a esto en su post, pero a mi no me funcionó. Imagino que su solución tampoco es válida cuando tenemos plugins u otro tipo de dependencias ya que la carga de las mismas depende de que se haya cargado con anterioridad la librería en cuestión.

Otra de las desventajas es que Google es quien tiene control sobre el código de las librerías, lo que significa que tienen acceso a nuestro código y datos (cuando usamos las librerías, les estamos pasando nuestra información a ellas para que la procesen y las mismas pueden haber sido modificadas para registrar esa información). Si bien no hay que ponerse paranoicos, es un factor a tener en cuenta. También es verdad que muy posiblemente estén guardando información sobre el trafico de nuestro site (contando la cantidad y origen de descargas de los archivos).

Leí en algún comentario de algún blog (el cual no encuentro) que algunos antivirus bloquean la bajada de scripts de otros severs, lo cual tiene sentido desde el punto de vista de la seguridad si uno lo piensa un poco.

Casos especiales

Hay otros casos en los que simplemente nos conviene hostear nosotros mismos esos archivos.

No tiene sentido buscar las librerías en servidores externos durante la etapa de desarrollo, estaríamos haciendo que la carga de las mismas sea más lenta ya que durante el desarrollo de un site, normalmente trabajamos de forma local y siempre va a ser más rápido cargarlas de esa forma.

Otro caso en donde no es viable el uso de esta técnica es cuando el site que usa las librerías es un site interno, es decir, se utiliza en una Intranet y no se publica en internet. Una vez mas, es posiblemente más rápido descargar los scripts desde un servidor en la red local que desde internet.

¡Nos vemos en el próximo post!

Referencias:

Publicado originalmente en https://gerardocontijoch.wordpress.com.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: