He traducido al castellano el tutorial How to paginate, sort and search a table with Ajax and Rails, escrito por Julien Barnier.
Con bastante soltura y enfrentándose al problema de paginar una tabla mediante Ajax, Julien nos da un repaso de principio a fin de las técnicas más frecuentes, desde el uso de parciales que modifican sólo ciertas partes del DOM, hasta la creación de observadores que disparan eventos como respuesta a la actualización de un campo (pasando, cómo no, por los inevitables spinners)
Podeis leer (y enlazar) la traducción aquí.
Si nuestra intención es usar Ruby on Rails para desarrollar aplicaciones que dejen con la boca abierta a todo el mundo (“¡Oooooh! ¡Aaaaaah!”), es prácticamente obligatorio pasar por AJAX , y si vamos a usar AJAX, tendremos obligatoriamente que manipular el DOM de la página usando Javascript (la J de AJAX), así como otras tareas como gestionar eventos, invocar las propias peticiones AJAX, etc.
Aunque estas tareas pueden hacerse usando nuestro propio código Javascript, tendríamos, entre otros problemas, que dar soporte a los diferentes navegadores: Internet Explorer, los basados en Gecko, Opera, Safari… una tarea ingrata que probablemente nos llevaría reinventar la rueda, porque para eso existen diversas librerías para facilitarnos la vida con Javascript
De entre las existentes, nos interesa naturalmente la librería Prototype, porque es la que viene “de regalo” incluida en la distribución de Rails, así que no tenemos que hacer gran cosa para utilizarla. Tenemos, además, la tremenda suerte de que Prototype está considerada como una de las más completas, y buen ejemplo de ellos es que sobre Prototype está construida Script.aculo.us, la librería de widgets y efetos visuales favorita de la comunidad Rails.
Pues bien, para empezar a andar con Prototype, nada mejor que echarle un vistazo a esta introducción en castellano a Prototype que podemos encontrar en 55 4E 42 4C 4F 47
¡Buen provecho!
Queremos generar contenido dinámico en una web, pero deseamos que esta vez sea el usuario el que, insertando un pequeño fragmento en HTML, pueda incluir ese contenido en cualquier página web. La idea original era usar un IFRAME, pero esto trae diferentes problemas (el menor de los cuales no son las poco estéticas barras de desplazamiento) Otra posibilidad es usar AJAX, pero eso obligaría al usuario a incluir las poco ligeras librerías de Prototype en su web.
Al final, optaremos por la solución más sencilla: incrustar el contenido en la web usando las etiquetas <SCRIPT ...></SCRIPT> y generar el contenido enviando sentencias document.writeln desde una plantilla RJS.
Nuestra prueba de concepto será hacer una pequeña aplicación Rails que cuando se la invoque con el mecanismo anterior, devuelva una de las célebres estrategias oblícuas de Brian Eno
Read the rest of this entryUna de las características del Diccionario Malacitano es su interfaz basada en Ajax. La consultas de las distintas letras del diccionario se hacen invocando un código Javascript que actualiza el contenido de una parte del DOM de la página (más exactamente el <div id="contenido"> usando una plantilla RJS, como ya vimos aquí)
La navegación básica en nuestra aplicación depende, por tanto, de que el usuario tenga habilitado Javascript (la J de AJAX) en su navegador. ¿Qué ocurre si un usuario llega a nuestra a web con Javascript inhabilitado, o, peor aún, con un navegador sin Javascript?
Pues simplemente verá que los enlaces del índice apuntan a URLs un tanto sospechosas (http://diccionariomalacitano.sobrerailes.com/#). Y no sólo eso, sino que además, si hace clic en una letra no ocurre nada. En conclusión, gracias al uso de AJAX hemos conseguido unos atractivos efectos visuales pero a cambio hemos convertido nuestra aplicación en un desastre de usabilidad que necesita arreglo.

