¿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:
Congoogle.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.
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…
@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…
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.
@Marc:
A ver, creo que hay que aclarar varias cosas:
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.
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.
Muy buen articulo Felipe, pero tengo una pregunta:
¿ En resolver la direccion http://ajax.googleapis.com a ip, crees que será mas rapido que sirvirlo del mismo servidor ?
Saludos
@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