Ha vuelto la programación. Programación Web en este caso.
He decidido reabrir viejas heridas, como a diario. Me he vuelto a poner con viejos proyectos y he estado buscanding incluso alojamiento web por si algún día se ponen en público uso. Por lo menos yo les veo utilidad.
En estos primeros pasos de adaptar a web lo que antes era un mero script en Java (sí, Java es un lenguaje de script), me ha dado quebraderos de cabeza. Puestos a hacerlo bien, ya que lo hago, he echado más tiempo en arrancar metiending librerías al proyecto y hacieding que funcionen a la vez que lo que programo en realidad.
He metido de todo lo que yo creo que son estándares del mercado web en Java y he pasado de Struts2 que sigue siendo experimental en su mayor parte, aunque era lo que tenía previsto, meterme en Struts2, por lo menos para aprender algo nuevo. Pero liándola con Spring e Hibernate también se aprende. Lo uno porque no lo había utilizado nunca y lo otro porque lo que hago en el curro con ello no tiene ni la remota paredicencia con esto.
Pero lo que iba a comentar era lo del Ajax. Ajax es la forma elegante de decir que cargas cachos de página sin recargarla toda usando Javascript por aquello de ahorrar ancho de banda y recursos en el servidor.
Me pasé un tiempo remirando el estado del arte por los ahises y no me acababa de convencer. He visto ajax-tags que generan javascript y que se integran con Struts, también eso de Ajax Anywhere... Y más cosas como implementaciones que dependen sólo de cliente...
Son cosas como cañones de grandes para matar mi mosca. La mosca es cambiar algún cachico de página, cosa que puedo conseguir haciendo el post con XMLHttpRequest a pelo con un código que amablemente plagié de Peter ^^.
Vale, lo que descarté de todos los otros era que no se podía manejar un redirect devuelto por el servidor. pero es que después de tirar un poco de la manta resulta que el XMLHttpRequest [wiki, w3c] no soporta redirections... Lo que hace es pedir lo que sea al navegador y puedes ir viendo cómo cambia de estado y cómo se pide otra dirección en debug pero, en tiempo de ejecución, no hay acceso ni a la URL de la petición por mucho que cambie...
Pos estamos chungos. Hombre, o invades las páginas con cienes de líneas de supérfluo javascript o usas un redirect... Es que con lo bien que nos iba cuando tras modificar un registro podíamos redireccionar para que se vuelva a pedir la lista actual y ver los cambios... Qué felices eramos entonces... Bueno, pues nada, que ha habido que hacer una solución "ad hoc" que no deja de ser cerda como sólo el Javascript en una página puede ser... No invasivo con las acciones... No invasivo en las páginas que lo incrustan... ¡Oh, Dios! ¡Cómo me gusta el resultado, carajo!
Si no es a lo cerdo, tendremos que esperar, porque al parecer en el w3c sugieren que en próximas implementaciones van a dejar que manejemos los redirect como nos salga... Verase cuando se vea.
Salú.