Historia
Hasta hace poco, las aplicaciones web que existían se basaban en la interacción entre cliente y servidor. Después de cada acción realizada por el usuario, una petición era enviada a través de la red, tendiendo que esperar hasta que el servidor procesase esa petición y devolviese los resultados correspondientes, traduciéndose en un uso muy lento y hasta casi desesperante de las aplicaciones. Esto provoca muchas críticas y descontento por parte de los usuarios, además de un bajo rendimiento.
Una solución empleada para hacer mas amigable y rápido su uso consiste en la utilización del lenguaje Javascript en las páginas web. Este lenguaje se ejecuta en cliente, lo que hace que para ciertas tareas no sea necesario establecer una conexión con el servidor.
La principal desventaja del uso de Javascript es que los distintos navegadores tienen una implementación distinta de el y no cumplen al cien por cien con el estándar establecido. Además, el uso intensivo de Javascript hace que el software sea más difícil de hacer y mantener, convirtiendo las páginas web en un galimatías donde se mezclas distintos lenguajes.
En febrero do 2005 Jesse James Garrett publicó un artículo en la red sobre lo que el bautizó como AJAX. Con este termino hacía referencia a las técnicas empleadas por nuevos proyectos web que hacen que la interacción con las aplicaciones sea mas amigable y rápida para el usuario.
AJAX se basa en los siguientes elementos:
- Presentación basada en estándares como XHTML y CSS.
- Interacción e visualización dinámica utilizando el Document Object Model.
- Manipulación e intercambio de datos usando XML y XSLT.
- Transferencia de datos asíncrona usando XMLHttpRequest.
- JavaScript poniéndolo todo junto
Por otro lado, el W3C, que es la asociación encargada de construir los estándares para internet, definió XForms. XForms es el estándar encargado de sustituir en un futuro a los formulario de HTML.
En contrate con los formulario HTML, en los que se mezclan los elementos funcionales y de presentación, XForms le permite a los desarrolladores distinguir entre la descripción del propósito del formulario, la presentación del mismo, y la forma de escribir resultados (los datos de la instance) en XML.
Al dividir los tradicionales formularios HTML en tres partes (modelos, datos de la instancia e interfaz de usuario) XForms logra separar limpiamente la presentación del contenido. Esta separación aporta nuevas ventajas:
- Reutilización
- Os módulos XForms pueden ser vueltos a utilizar con independencia de los datos que recojan
- Independencia del dispositivo
- Los controles de la interfaz de usuario son abstractos (es decir, que solo se indican sus características genéricas) para permitir su representación en distintos dispositivos con capacidades diferentes
- Accesibilidad
- La separación de la presentación y del contenido dejan la información mas fácilmente disponible para los usuarios de ayudas técnicas. Además, los controles del interfaz de usuario encapsulan todos los metadatos relevantes, tales como etiquetas, lo que mejora la accesibilidad de la aplicación en distintas modalidades de acceso.
XForms pode hacer todo lo que hacen los formularios HTML, pero además permite:
- Comprobar automáticamente los valores de los datos mientras el usuario los introduce.
- Indicar que ciertos campos son obligatorios y que el formulario no podrá ser enviado sin esa información.
- Enviar formularios de datos como XML.
- La integración con Servicios Web, por ejemplo, usando SOAP y XML RPC.
- Enviar el mismo formulario a diferentes servidores.
- Guardar y restaurar valores en y desde un archivo.
- Utilizar el resultado de un envío como entrada para un formulario posterior.
- Obtener los datos iniciales para un formulario a partir de un documento externo.
- Deducir valores desde otros valores presentes en el formulario, por ejemplo que el campo "cantidad total" contenga la suma de todas las compras individuales.
- Forzar valores para que aparezcan de una determinada forma, por ejemplo obligando a que los valores se encuentren comprendidos en un rango determinado
- Construir formularios estilo "cesta de la compra" y "asistentes" sin necesidad se programar en servidor.
- Mejorar la experiencia de los usuarios.
- Lograr la independencia de dispositivos.
- Facilitar la creación de formularios complejos
Actualmente ningún navegador web soporta XForms, aún que sea un estándar reconocido y que se encuentre apoyado por los líderes de la industria. Existe algún plugin para el Internet Explorer y la Fundación Mozilla está desarrollando otro para el Firefox. Además existe algunas nuevas implementaciones que emplean la comunicación con un servidor para emular el funcionamiento de XForms. Aún así, hoy en día no existe una aproximación válida que convenza al mercado, con lo cual XForms es un estándar poco conocido y empleado, aún que con un gran potencia.
AJAXForms nace como la unión entre estos dos conceptos. Consiste en una implementación de XForms utilizando para ello las técnicas AJAX.