jueves, febrero 05, 2009

Repositios en JavaScript

Google AjaxLibs

Hola,

Ya fue algún tiempo atrás cuando escuche en una conferencia de Ajax, acerca de repositorios JavaScript de donde puedes referenciar una librería JavaScript y reutilizarla, sin necesidad de tenerla en tu servidor, veamos un ejemplo:


<!-- Google reference apis -->



<script src="http://www.google.com/jsapi" type="text/javascript" charset="utf-8"></script>



<!-- Indico que deseo utilizar prototype y scriptaculous -->



<script type="text/javascript" charset="utf-8"> google.load("prototype", "1.6");

google.load("scriptaculous", "1.8.2");

</script>



Este ejemplo muestra como se incluye el Google JavaScript API y como al mismo se le solicita incluir prototype y scriptaculous.

Entre los inconvenientes podrían estar el tiempo de descarga del JavaScript, sin embargo esto es debatible en el sentido que el servidor de Google puede ser más rápido que el nuestro. Otro punto importante recae directamente sobre las nuevas tecnologías introducidas en Google Chrome; este navegador orientado a App Web, tiene dentro de sí el V8, una maquina virtual que compila el JavaScript, por lo tanto si la referencia a una libraría, como JQuery por mencionar alguna, fuera siempre la misma (por ejemplo referenciando a repo de Google), el V8 probablemente ya la tenga compilada, así que ni siquiera la descargara, solo reutilizara el código ya compilado, lo que nos ayuda tanto a nivel de descarga como de interpretación del JavaScript, pues con V8, la librería se interpreta una vez y se sigue reutilizando, que nos proporciona una velocidad mayor en el procesamiento inicial.

Para terminar este post, me parece que el enfoque es fantástico y además hace muy fácil su utilizaron y mas estándar también.

+ Info

6 comentarios:

Gabriel S. dijo...

Esta filosofía se parece un poco a la de los web services. Creo que si alguien es bueno haciendo algo, para qué vamos a re-inventar el agua tibia. Sería curioso ver un test de rendimiento con un caso específico.

gartuz dijo...

A mi tambien me parece mas a web services que a repositorios. Es buena idea en cuanto a reutilizacion pero un tanto preocupante porque Google quiere que todo el trafico de internet y aplicaciones pase o se guarde en sus servidores. Cuando tengan el monopolio de esto probablemente los Javascripts vengan con Publicidad.

jsanca dijo...

Hola Gabriel, no entiendo muy bien tu comentario.
En cuanto a los Web Services, pues si, mira tiene cierto parecido en el asunto del locator, pero eso si, ese codigo que muestra el ejemplo simplemente incluye la librería en tu página, yo lo vería mas como un localizador de dependencias que otra cosa.

jsanca dijo...

Interesante razonamiento Gartuz acerca de la monopolizacion de Google, como nota curiosa no solo Google tiene estos servicios disponibles, es decir que otra gente tambien proporciona funcionalidades similiares, con las mismas ventajas, solo que fue la de Google la que encontré. Otra cosa a tener en cuenta, es que esto no sirve en ambientes de Intranet, donde no se tiene acceso a Internet, en ese caso la mejor practica sería hacer un servidor provedor de estos servicios y reutilizar la idea de Google o algún otro.

Tuanis

bernabegh dijo...

Yo por mi parte prefiero tener los frameworks en mi servidor, aunque no creo que google haga la chanchada de kitarlos y dejar mamando a medio mundo, prefiero usarlos desde mi server para mas seguridad por ke se ahi van a estar siempre.

jsanca dijo...

bernabegh, la ventaja de utilizar las referencia a google, es que los motores modernos de javascript cachan y compilan (tipo vm) los javascript, entonces si una Web X, utilizo antes que tu, ese javascript, el navegador nisiquiera lo carga, pues ya esta compilado.

Al final, es cuestion de gustos.

Saludo,
J