AJAXInterceptor: convierte tus aplicaciones Web a AJAX sin escribir una sola línea de código


Estos días he estado trabajando unas cuantas horas de mi (poco) tiempo libre en una idea que tuve ya hace bastante tiempo. Se puede resumir con sólo una frase: crear una pequeña biblioteca JavaScript que, añadida a tu página Web (PHP, ASP, ASP.NET…) la dotará automáticamente de funcionalidad AJAX, sin que tengas que escribir ni una sola línea de código.


Pensé que iba a resultarme mucho más dificil, pero lo cierto es que ha sido bastante fácil de conseguir.


Ahora ya la puedo presentar para que el que quiera se descargue el resultado: AJAXInterceptor 0.5 Beta.


Sólo con añadir este pequeño módulo JavaScript al final de tus páginas consigues que los envíos de tus formularios se intercepten (de ahí el nombre), y en lugar de enviarse la petición al servidor de la manera normal, se hacen de manera asíncrona y en un modo suave estilo AJAX.


Dado que es una biblioteca de lado de cliente funcionará con cualquier tecnología de servidor: ASP.NET, PHP, JSP, Classic ASP… e incluso con archivos locales HTM. No obstante sólo lo he probado con aplicaciones ASP.NET y ASP 3.0 (por favor, mándame un correo si lo pruebas con otra tecnología de servidor),


He incluido extensibilidad en el módulo de modo que puedes añadir fácilmente tus propios indicadores de progreso personalizados (he incluido varios) y mostrar mensajes de error de la forma que prefieras (por defecto muestra una ventana de alerta para los errores).


La biblioteca funciona interceptando el envío de los formularios. Soporte tanto formularios enviados automáticamente (con botones de envío o la tecla ‘enter’), y envíos de formularios hechos mediante código llamando al método submit(). Respeta además los posibles manejadores del evento onsubmit que hayas creado, por lo que puedes hacer la validación de formularios de la manera habitual (he buscado que sea lo más transparente posible).


Resumen de características:



• AJAXificación de aplicaciones Web sin escribir código
• Soporte de cualquier tecnología Web incluyendo ASP.NET, JSP, PHP, ASP 3.0…
• En ASP.NET soporte cualquier tipo de postback: directos y por código.
• Funciona en cualquier navegador moderno que soporte AJAX.
• Soporte el envío cruzado de formularios, es decir, puedes enviar la información a otras páginas diferentes dentro del mismo dominio. Si todas las páginas de tu sitio tienen AJAXInterceptor incluido (por ejemplo porque lo metes en una Master Page o en una plantilla) puedes tener todo el sitio AJAXificado.
• Respeta tus manejadores de evento de onsubmit.
• Soporta la historia del navegador de forma que tus usuarios pueden pulsar el botón «Atras» en el navegador y volver a la página anterior aunque la actual haya sido cargada con AJAX.
• He incluido dos versiones del módulo:
    – AJAXInterceptor.js: comentado por completo. Útil para depurar apliaciones.
    – AJAXINterceptor_r.js: versión reducida de tamaño. Se descarga más rápido ya que sólo ocupa 2.6 kB. Es mejor usar esto en aplicaciones en producción.
• Muestra y oculta automáticamente indicadores de progreso personalizados.
• Soporta la cancelación de las peticiones.
• Soporta la visualización personalizada de mensajes de error.
• Soporta cualquier formulario que haya en una página (si hay varios).


Obviamente no es un sustituto de una API potente como ASP.NET AJAX de Microsoft, PHPLiveX o AJAX.NET, pero te permitirá añadir soporte AJAX a tus aplicaciones en unos segundos y sin escribir código. ¡Dale una oportunidad y pruébalo!


En el ZIP encontrarás el módulo, un ejemplo de uso con ASP.NET y un PDF con la documentación de ayuda.


Me gustaría mucho que me escribieses en caso de que lo llegues a usar en alguna aplicación real o si lo mejoras con nuevas características. Usa el enlace «Contacto» que hay en el lateral de esta página para enviarme un e-mail.


Descargar: AJAXInterceptor 0.5 Beta (834 KB) ¡Freeware!


Actualización: Hoy (16/1/2008) he añadido el proyecto a CodePlex: http://www.codeplex.com/AJAXInterceptor. A partir de ahora las modificaciones y añadidos (de haberlos) irán apareciendo allí.

Sin categoría

8 thoughts on “AJAXInterceptor: convierte tus aplicaciones Web a AJAX sin escribir una sola línea de código

  1. Hola Pedro:

    haz una prueba y verás que todo eso funciona sin problemas. El módulo, en principio, es transparente para la aplicación, ya que el objeto XmlHttpRequest lanza las llamadas al servidor conservando las cabeceras de la página en la que se está utilizando. Ello incluye por supuesto la cookie de sesión, por lo que no tienes problemas.

    Las variables de contexto se establecen en el pipeline de procesamiento de la página ASPX en el servidor por lo que es independiente también de cómo se haga la llamada en el cliente, por lo que también te funcionarán.

    Lo mejor es que hagas una prueba y lo compruebes por ti mismo.

    Espero que te guste. Se trata de un divertimento mio más que otra cosa, pero en ciertos casos podría resultar úlil. Además creo que con el código se puede aprender algo sobre los fundamentos de AJAX, de modo similar a mi serie «the a pelo series» que hice sobre el tema en el blog (http://www.jasoft.org y luego busca AJAX).

    Saludos

    JM.

  2. Hola Rodrigo:

    En el ZIP incluyo bastante documentación y la versi´no del módulo no reducida (para depuración) lleva muchísimos comentarios sobre lo que se hace, por lo que creo que servirá para que mucha gente aprenda.

    En Codeplex igual es poca cosa para meterlo allí 🙂

    Un abrazo y a ver si nos vemos.

  3. Rodrigo:

    Te he hecho casi y he añadido el proyecto a CodePlex. No había añadido nunca antes ninguno y como prueba para ver cómo funciones, etc… me ha parecido interesante. Ya os contaré qué tal 🙂

    Saludos

    JM.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *