CDN para frameworks javascript

¿No sería genial que en lugar de tener que descargar una y otra vez los archivos de jQuery, mootools, prototype… estos estuvieran distribuidos de forma de ahorrarte en transferencia y aumentando la velocidad con que tus usuarios ven tu sitio?

Tras esta larga y rebuscada pregunta lo que se esconde es un servicio de Google del que no sabía hasta hace poco, pero que demuestra que a veces una pequeña idea puede traer grandes beneficios: se trata de AJAX Libraries API, una red de distribución de contenidos (Content Distribution Network, o CDN, para los amigos) y “arquitectura de carga” para algunas de los frameworks javascript más populares.

En pocas palabras, AJAX Libraries API permite que tus usuarios descarguen la librería javascript de tu elección desde la red de servidores de Google, para lo cual tienes dos opciones: hacerlo a través de google.load() (un método desarrollado por Google para facilitar la carga de acuerdo a dos parámetros, que especifican el framework y la versión que quieres) o bien directamente desde <script />. Por ejemplo:

Con google.load():

<script src="http://www.google.com/jsapi"></script>
<script>
	// Load jQuery
	google.load("jquery", "1");
</script>


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

Las librerías disponibles son:

  • jQuery
  • prototype
  • scriptaculous
  • mootools
  • dojo

Para la lista completa de versiones y direcciones, puedes consultar la documentación. En general, hay versiones sin compresión y “minificadas”.

Para redondear, algunos de los beneficios que podrás tener son: para tí, disminuir tu gasto de transferencia de archivos (o ancho de banda, si prefieres llamarlo así), para tus visitantes: no tendrán que bajar el framework cada vez que visiten un sitio, bajarán el contenido desde un servidor geográficamente cercano.

Recuerda que para CSS también hay algo similar, ya que puedes utilizar la Yahoo User Interface! (el framework CSS de Yahoo!) directamente desde sus servidores.

7 comments

  1. Ala venga, todo para google, así se ahorran el ancho de banda ellos y las empresas, usuarios, todo el mundo se beneficia … ejem…

    A mi manera de verlo eso es ceder control a una empresa, no voy a empezar el eterno debate de si google es maligno o qué, pero a mi manera de entender, a mayor independencia mayor control, y a mayor control, menor subyugación de unos pocos (recordemos caso windows y microsoft). Esto es el inicio del GInternet (ni internet 2.0 ni ostias!) y los ‘developers’ se lo están comiendo con patatas por unos pocos bytes (antes era por unos pocos dolares,jjejee).

    Gracias google por el pan de cada día y todo eso…

  2. @Marc: ya hombre, está bien, si lo ves de ese modo creo que no tendrás problema en servir tus propios videos o administrar la publicidad en tu sitio… oh, pero veo que pones Adsense y videos de YouTube 😛

    Ahora, en serio, creo que la mayor preocupación que se podría tener es en cuanto a la privacidad de tus usuarios, ya que de seguro con la descarga de los archivos se recopila algo de información (navegador, OS, etc.); pero si ya se están bajando algo de Google…

  3. Los datos a los que te refieres los tenemos todos los administradores de sitios. A lo que me refiero es a que te pongan publicidad relacionada con los correos que te envian, o promociones adaptadas a tus gustos, o … que harías con la información de millones de personas? y cuando digo información me refiero a la cantidad de datos que se pueden llegar a almacenar en correos, calendarios, agendas, documentos, blogs, galerias de fotos, vamos, tu vida en sus manos… (blogs o galerias es lo menos intrusivo, pero cuando poner en google calendar “a las 14:00 dentista” le estás diciendo al Sr google que tu boca no tiene el aliento deseado y que necesitas que te ponga publicidad de dentifricos (por poner un ejemplo absurdo).

    Al respecto de poner AdSense o vídeos de youtube, pues que quieres que te diga? absurdo me parece que compares recopilar información acerca del navegante con información privada y sensible. Es que no comprendo como la gente puede poner en manos de una gran (macro) corporación sus datos más significativos y encima con la emoción y deboción que demuestran muchos fanaticos del mal llamado web2.0.

    A temas como este me refiero:
    http://www.facua.org/facuainforma/2007/13agosto2007.htm

    Espero que esto aclare un poco mi postura.

  4. @Marc:

    A ver, creo que hay que aclarar varias cosas:

    1. Este post se trata sobre servir archivos javascript que son comúnmente utilizados por desarrolladores desde los servidores de Google. Si piensas que es perjudicial para tí como desarrollador o como usuario, tienes toda la libertad de utilizar otra alternativa e incluso bloquear tu propio acceso a Google.
    2. Si Google es maligno o no es harina de otro costal, pero la comparación con Microsoft es poco rigurosa: el problema de Microsoft no es que Windows sea el SO utilizado por la gran mayoría de los mortales, sino las maniobras sucias para asegurar y mantener esa posición; el tema de la calidad de su software y todo lo demás pasa a segundo plano teniendo esto en cuenta. Hasta donde recuerdo, los juicios contra MS comenzaron porque ataban la venta del licenciamiento OEM a la instalación de Internet Explorer. No soy defensor de Google ni mucho menos, pero hasta donde conozco, no han existido casos de este tipo con ellos; a lo más pagan a ciertos fabricantes para que su página esté configurada como la página de inicio, lo que es bastante distinto.
    3. Si piensas que debes tener el mayor control posible sobre todo, tendríamos que partir por escribir nuestro propio software, tener nuestros propios servidores en nuestras propias instalaciones, etc. Creo que la cuestión no se trata de tener el mayor control, sino de tener el control total solamente sobre las cosas que indispensablemente debemos controlar, y así poder dedicarnos a administrar eso y nada más; cualquier otra opción requiere una inversión de esfuerzo y dinero mucho mayor.
    4. Los datos que Google puede recopilar por servir un fichero JS son nada más y nada menos que aquellos que van en una petición HTTP: navegador (“agente”), IP, etc. No otros datos personales.
    5. Sobre los otros tipos de información que Google recopila, sabes que es muy sencillo evitarlo: si no quieres que indexe tu blog, ahora WordPress hasta trae una opción específicamente hecha para eso; sobre sus otros servicios es cosa de simplemente no usarlos. Si te preocupa que manejen mucha información de muchas otras personas, pues qué quieres que te diga: es opción de ellos. Puedes hacer una campaña o lo que sea, pero no por simplemente preocuparte más la situación va a cambiar. En todo caso, creo que es necesario diferenciar entre la información que Google recopila y la información que almacena: es distinto “sacar” información a sus usuarios (desde peticiones HTTP o cookies) a que sus usuarios guarden su información en sus servicios.
    6. Sobre AdSense y YouTube, la verdad es que era nada más que algo así como una broma, pero si vamos a discutir sobre eso, pues quizás vale la pena decir que la capacidad de recopilar información desde AdSense o YouTube es mucho mayor que la desde un fichero JavaScript. Nuevamente, la diferencia entre información que recopila e información que almacena.

    Bien, finalmente no se trata de pelear ni mucho menos (¡en serio!) pero es que aquí hay dos temas que poca relación tienen; en otras palabras, esto es tremendo off-topic.

  5. No, no, pelear ni mucho menos, me agrada que me argumentes todos esos puntos y realmente tienes razón, no me tendría que preocupar tanto por google y sus movimientos para dominar el mundo e Internet.

    A lo que realmente voy es que Google ahora mismo dispone de una posición muy (mucho) privilegiada en relación a todos sus competidores y cada vez la “bola de nieve” se va haciendo más y más grande, lo que me lleva a pensar que a la larga eso puede llegar a ser perjudicial para la neutralidad de Internet (es una empresa, y como tal tiene intereses).

    Tienes razón, todo esto no tiene nada que ver con un CDN de javascript, de hecho es un servicio más, el cual tiene grandes ventajas, aunque confiar en que nuestra página funcione siempre cargando un archivo desde otro servidor no nos asegura el buen funcionamiento en todos los casos (y si, todos conocemos las bondades del uptime de google).

    Total, no hace falta darle más vueltas, OffTopic al rio.

  6. @Fabian Ramirez: ¡Gracias ;)! Sí, te podrías ahorrar un par de milisegundos, pero la gracia de servirlos desde http://ajax.googleapis.com/ es que eso está montado sobre el CDN de Google, se sirven comprimidos con GZIP y si el usuario ha visitado otro sitio que ocupe alguno de esos scripts, lo va a tener en la cache del navegador, lo que sería mucho más rápido… quizás para móviles (donde la latencia es mucho mayor) sería buena opción

Comments are closed.