Librería jQuery y ajax para transformaciones xslt en el navegador (I)
Como resultado de algunos de mis proyectos anteriores, he llegado a desarrollar una librería ajax que permite hacer transformaciones xml a html mediante documentos xslt, en el navegador. Esta librería, conjuntamente con un patrón Modelo-Vista-Controlador ad-hoc implementado en PHP, creo que constituye un marco de trabajo muy cómodo para separar todos los aspectos de una arquitectura web: estructura, datos, presentación, estilo, etc.
He decidido implementar la librería como plugin de jQuery como segundo paso al uso de jQuery, decisión que ya había tomado anteriormente. El pasar una función o librería a plugin le da cierta elegancia y comodidad al uso.
El «milagro» de una librería tan versátil y potente como jQuery es que logra reducir un gran número de navegadores a uno solo, y eso es una ventaja enorme, porque desaparece la preocupación de la compatibilidad para que nos podamos centrar en la creatividad y en la diversión. Yo lo veo como una especie de «middleware» web, si se me permite el «abuso». En un primer momento, jQuery me facilitó enormemente el análisis del XML y el trabajo con DOM, por eso al final decidí implementar la librería como plugin. Ya que había generado esa dependencia, ¿por qué no hacerlo de la forma elegante?
La librería y el marco de trabajo
En lugar de intercambiar mensajes XML sin orden ni concierto entre el cliente y el servidor, decidí que crearía un vocabulario específico para el marco de trabajo. Así en cada sección de un documento xml intercambiado por ajax habría espacio para: datos xml, datos xslt y funciones javascript, así como una sección especial de control. La creación de este xml está facilitada por una serie de funciones ya implementadas en el marco MVC.
Usar la librería de transformaciones desde JavaScript es tan sencillo como ejecutar la siguiente llamada:
$( ‘#destino’ ).ajaxslt( {module: ‘sistema’, webservice: ‘mensajes’, action: ‘ultimos_mensajes’} )
Lo que acabamos de hacer es invocar al método ultimos_mensajes
de la clase mensajes
dentro del módulo llamado sistema
. Esta simple llamada ha iniciado una serie de procedimientos que pasan por buscar el xslt y xml correspondientes en caché, pedirlos si no los tiene, y finalmente realizar la transformación y presentar el html resultante el el contenedor con id="destino"
. Eso es lo básico y hay muchas maneras de alterar este comportamiento y parametrizarlo de maneras muy interesantes.
Mi intención es la de dividir las explicaciones sobre el uso y abuso del marco de trabajo en varios capítulos. En lo que sigue explicaré cómo montar la parte del servidor simplemente definiendo clases con sus métodos, cómo enviar parámetros al servidor, cómo parametrizar una hoja de estilo xslt que ya está en cliente o cómo tener librerías javascript que se carguen de forma dinámica, entre otros asuntos. Por ahora, estaría bien que os dejara con una página para jugar con la librería y un enlace para la descarga. Si os bajais y usais la librería para algo, agradecería un comentario a este post al respecto.
1 Veréis, revelando el código fuente de la demo, que también se necesita el archivo util.js (está en el repo), que en realidad lo único que tiene es una función para serializar a texto un documento XML.
Perpetrado el 23 de abril de 2010 por una IN (Inteligencia Natural), la mia, con cierto esfuerzo.
Archivado en categoría(s) sandbox
Deja una respuesta