Professional Documents
Culture Documents
Python • DESARROLLO
AJAX
demonios es AJAX?
PEDRO ORANTES
A
Brave New World” (“Un Mundo de campos o el arrastrar y soltar, que Esta fase ya casi ha pasado y ahora se
Feliz”) es el nombre de la famo- eran imposibles en la Web. busca la sencillez, y en el momento justo
sa novela de Aldous Huxley, en Conforme avanzaba el tiempo nume- surgió AJAX. Para más información ver
ella nos muestra un mundo distinto y rosas empresas y personas proponían url [2] de la tabla Referencias.
aterrador pero que parecía, y parece, soluciones. La lista es interminable:
cada vez más cercano. JavaScript, Java Applets, ActiveX, Tcl, Los problemas con IE
Nosotros no tenemos una visión tan VBScript, Macromedia Flash…
pesimista del mundo, pero es probable Pero todas fallaban de uno u otra Internet Explorer, a pesar de ser el pri-
que ese título (que se podría traducir manera. En el caso de Java, para ejecutar mero que introdujo XMLHTTPRequest,
literalmente por «un nuevo y desafiante el Applet necesitabas tener instalado el es el que más problemas da en su uso.
mundo») explique todo el revuelo que Java Runtime Environment, y la mayoría El código aquí mostrado ni siquiera fun-
está levantando AJAX. El término fue de los usuarios no sabían ni qué era ciona en IE debido a que en él se hace
acuñado por Jesse James Garrett en el aquello que se le pedía. Lo mismo ocu- uso de un componente ActiveX para
artículo [1] de la tabla Referencias. rría con Macromedia Flash. establecer la conexión.
Durante mucho tiempo las GUIs, las Lo peor era que cuando estaba solu- Existen numerosas técnicas para permi-
Interfaces Gráficas de Usuario, han cionado el tema de la instalación del tir la compatibilidad entre navegadores,
dominado la informática. La gente que software adecuado, los desarrolladores pero debido a la extensión del artículo y
trabajaba en la Web siempre estaba creaban, y crean, páginas horribles lle- a su complejidad no las hemos mostra-
do. El lector interesado en la compatibili-
intentando convencer a todo el mundo nas de cosas moviéndose que distraen e
dad puede estudiar el código de siste-
de que para la mayoría de los programas, irritan. Se sentían impulsados a usar
mas de código libre que implementan
un interfaz web bastaba. Pero los usua- hasta la última capacidad de las nuevas
AJAX como puede ser Sarissa. Vea la
rios estaban acostumbrados a ciertas herramientas y acababan generando referencia [3] en la tabla Recursos.
características, como el auto-completado monstruosidades.
DESARROLLO • Python
¿Pero qué es posibilidad de traer información al nave- ser consultado usando AJAX. Crearemos
AJAX? gador sin recargar la página. una web con algo de código Javascript
Muy buena pregunta. Lo Esto es útil para algunas tareas pero no que a intervalos accederá a nuestro ser-
cierto es que AJAX ha demasiado, ya que a nuestro puzzle le vidor Python y modificará el aspecto de
estado delante de nues- faltan piezas. La primera pieza es la la página web.
tras narices todo el adopción de esta librería por casi todos
tiempo, esperando a los navegadores, por lo tanto el código Los 5 Ingredientes
que alguna mente des- pasa a ser de aplicación universal. Los cinco ingredientes necesarios para
pierta lo redescubriese. Además resulta que podemos modifi- elaborar nuestro producto son CSS,
El acrónimo «AJAX» se car el contenido de la página en tiempo Javascript, HTML, XML y Python, como
compone de las pala- real usando el denominado árbol DOM. aparecen en la figura 1, y cada uno tiene
bras «Asynchronous Y por si fuese poco, cuando AJAX fue su función en esta obra.
JavaScript and XML», definido, los programadores comenzaron HTML es la base sobre la que vamos a
término acuñado por a usar protocolos XML para comunicarse trabajar, definimos una página web en la
Jesse James Garrett, y con los servidores. que todo ocurrirá. De hecho, con el paso
curiosamente su existen- ¿Qué quiere decir esto? Pues que del tiempo el propio HTML ha acabado
cia se debe a una de esas ahora, con AJAX, podemos cargar una convirtiéndose en una especie de planti-
famosas violaciones de los página y, sin tener que recargarla, traer- lla donde campan a sus anchas CSS y
estándares que suele realizar Microsoft nos información, modificar la página en Javascript.
con sus productos. tiempo real, e interactuar con servidores CSS nos permite otorgar propiedades
Allá por 1998, Microsoft introdujo den- remotos usando protocolos XML. visuales a los elementos de HTML.
tro de sus productos una librería que le Básicamente, una vez cargada la página Javascript es el encargado de actuar en
permitía hacer consultas usando el proto- web tenemos entre manos todas las posibi- la máquina cliente, en el navegador, y
colo HTTP de manera autónoma y asín- lidades de programación de un GUI tradicio- puede modificar tanto el HTML como las
crona. Cuando tu navegador accede a una nal. Y todo esto sin necesidad de plugins ni propiedades visuales que CSS define.
página y esta contiene código Javascript, instalaciones, toda esta tecnología está en Con la llamada XMLHttpResponse sus
este código a su vez puede traer informa- nuestros navegadores esperando ser usada. atribuciones se han disparado. Ahora se
ción de esa u otras páginas de manera ve como un lenguaje de programación de
independiente. Si además se hace que este ¿Cómo encaja Python? pleno derecho. En los próximos años
código permanezca en ejecución respon- Pues vamos a realizar un pequeño servi- puede que adquiera mucha más impor-
diendo a eventos tenemos entre manos la dor de contenidos en Python que pueda tancia de la que ha tenido hasta ahora.
DESARROLLO • Python
Python • DESARROLLO
DESARROLLO • Python
devuelve. Para ello se comprueba la este es uno de esos casos. Vayamos Javascript, desde otra
extensión de los mismos. En aras de la ahora a por AJAX para comprenderlo. perspectiva
simplicidad, sólo consideraremos tres Mucha gente ha tenido extraños encuen-
extensiones. HTML tros con este lenguaje de programación.
Cuando un comando es ejecutado por Quizá éste sea uno de los artículos Es raro y, hasta hace no demasiado, no
Comando, se tiene especial cuidado en donde Python tenga menor protagonis- muy útil. Te permitía modificar colores
utilizar la función cgi.escape sobre cada mo, pero con cinco actores suele ser en páginas web o poner insidiosos ban-
linea. Esta función realiza algunas con- complicado. Veamos el HTML. La pági- ners. Por no hablar de las famosas venta-
versiones dentro del texto que se le na index.html se puede ver en el nas emergentes.
pasa para que pueda ser correctamente Listado 2. Esto ha hecho que se haya ganado una
visualizado por un navegador web. El Básicamente carga un fichero fama muy mala, tal es así que casi todos
problema radica en que ciertos caracte- Javascript, un fichero CSS y muestra un tenemos restricciones en nuestro nave-
res, como pueden ser «<» or «”» son título junto a unos cuantos botones. gador en torno a qué acciones puede o
especiales y si no se «escapan», si no se Estos botones invocan acciones en no realizar Javascript. Lo más normal es
preceden de un «\», causarán proble- Javascript. que tengamos uno de esos famosos blo-
mas. Debemos fijarnos especialmente en el queadores de popups.
Y con esto, hemos definido un servi- uso del atributo id en numerosas etique- Pero Javascript se ha reinsertado en la
dor web básico. Python nos permite rea- tas HTML. Gracias a estos ids podremos sociedad de los programadores por la
lizar complejas tareas con poco código y manipularlas mediante Javascript. puerta grande gracias a un solo objeto.
DESARROLLO • Python