Contenido

Usa Ajax con Cabeza

20 jul

+ 12

Hace ya unos días, via Digg me encontré este artículo que leí por encima (no nos vamos a engañar), y me parecío muy interesante los puntos que trataban a la hora de usar Ajax. Una muy buena lista de premisas a tener en cuenta a la hora de decidir donde y cuando utilizar Ajax en nuestras aplicaciones.

Hoy via Meneame he descubierto este otro, que justamente es una traducción del anterior  y que ya mencioné hace unos días y me apetecía comentar. Explica en el lenguaje de Cervantes las mismas premisas que en el artículo anterior. Me ha llamado la atención sobre todo la primera “Usar Ajax por ser “Ajax””, ya que es tan cierto que asusta.

Usar AJAX por ser “AJAX”

Sabemos que AJAX mola, que es novedad y que a los desarrolladores nos encanta jugar con lo último, pero ante todo AJAX es una herramienta, no un juguete. Muchas de las implementaciones que encontramos usando AJAX no son realmente necesarias para mejorar la usabilidad o la experiencia del usuario, sino unicamente experimentos para comprobar qué puede hacer AJAX o empeños de ponerlo donde realmente no se necesita.

Realmente los desarrolladores nos cegamos y a veces no nos paramos a pensar en que es lo más cómodo para el usuario y tambien para ti. Un ejemplo claro es el uso de comentarios mediante Ajax del este mismo blog. ¿Realmente es necesario? Si lo pensamos bien, lo único que hemos cambiado es que la imagen de cargando en aparezca debajo de los comentarios y luego recarge los comentarios en vez de que aparezca arriba en el navegador y recarge la página. Quizas ganamos un segundo o menos, pero es más bonito…. es Ajax (xDDD).

Hacer inservible el botón de volver atrás

El botón de retroceder (del navegador) es muy util en la navegación de una interfaz web. Desafortunadamente, no se lleva muy bien con las aplicaciones Javascript. Mantener la funcionalidad asociada a este botón es una de las razones para no realizar una aplicación completemante basada en Javascript.

Sin embargo, se debe tener en cuenta que un buen diseño web debe poner al alcance del usuario todo lo que necesita para navegar correctamente por el sitio y nunca depender de los botones o controles existentes en el navegador.

Es totalmente cierto que Ajax tiene un problema serio con este tema. Y aún no se si es posible corregirlo :(

No mostrar inmediatamente señales del progreso de una operación

Si algo en lo que hacemos click lanza una acción mediante AJAX, la aplicación debe dar pistas visuales de que algo está ocurriendo (ya que el navegador no lo hará ).

Un ejemplo de esto, es la etiqueta roja que aparece en la esquina superior derecha en Gmail mostrando el texto “loading”, cada vez que la interacción con el servidor se hace mediante AJAX.

Esto gracias a las famosas imagenes de Loading (Cargando) se está solucionando y cada vez más queda más claro su funcionamiento, osea los usuarios van aprendiendo lo que significa eso. 

No me hagas esperar

Las tabs de Firefox, me permiten administrar varias “esperas” a sitios web y normalmente solo tengo que esperar para la navegación en una página.Las aplicaciones AJAX combinadas con una conexion/ancho de banda/latencia pobre , pueden presentar un enorme problema de tiempos de espera al movernos por su interfaz, ya que cada vez que hago algo tengo que esperar la respuesta del servidor. Que Dios me ayude si tiene que llegar hasta el disco del servidor antes de que yo pueda continuar…

La aparición de nuevas herramientas de escritorio online están haciendo que cada día las personas puedan realizar tareas, que antes hacian en casa, en cualquier lugar del planeta, es cuestión de tiempo que las conexiones mejoren y se expandan hasta de llegar al completo del territorio habitable, pero por el momento no hay que descuidar a la gente que no dispone de estas características. Además cuando esta tecnología llegue Ajax tendrás sustituto, seguro.

Enviar de forma insegura información sensible

La seguridad en las aplicaciones AJAX está sujeta a las mismas reglas que la de cualquier otra aplicación web, excepto que al poder comunicarse de forma asíncrona con el servidor, pueden tender a estar hechas con código frágil y poco seguro. Es muy importante que todo el trafico que envía/recibe nuestra aplicación sea comprobado para que la seguridad no se vea comprometida.

Esto suele ser un problema que muchas páginas que he visto tienen, hay que tener en cuenta que el problema de enviar datos al cliente es que están en el cliente. No disponemos de la seguridad que nos da un servidor, y para enviar los datos desde el cliente hasta el servidor hemos de tener en cuenta este factor para evitar algún susto. Hay que cambiar la forma de pensar en el cliente.

Asumir que el desarrollo AJAX sólo es para una plataforma

El desarrollo AJAX es multiplataforma. De hecho funciona con el motor javascript del IE, con el motor de Mozilla, con el motor de Safari y con otros que pueden convertirse en fuertes opciones.No es suficiente programar siguiendo los estándares Javascript (sobre todo sabiendo que existe IE), se debe probar la aplicación en el máximo número de plataformas posible.

Aunque no siempre podamos probarlo con todos los navegadores existentes, siempre tenemos que tener esto muy presente y tambien que el 11% de los usuarios de Internet navegan con el JS deshabilitado. Por ese mismo motivo hay que cubrir todas las posibles condiciones para garantizarnos un exito seguro. 

Demasiado código, hace que el navegador sea lento

AJAX trae una nueva forma de hacer aplicaciones javascript mucho más interesantes, pero desafortunadamente esto a veces tambien significa “más código funcionando”.Más código funcionando significa más trabajo para el navegador, lo que provoca que en muchas webs con uso intensivo de Javascript, especialmente las mal programadas, necesites la última CPU del mercado para poder navegar por ella.De hecho, el problema de uso de CPU realmente ha sido un limite para la funcionalidad de Javascript en el pasado y el hecho de tener CPUs más potentes en la actualidad, no significa que el problema haya desaparecido.

Generalmente el uso de Ajax implica el uso del DOM resultante para conseguir los datos de nuestra petición. En algunos casos seguro que nos sale más a cuenta usar el AJAT como modelo de programación sobre Ajax.

Leer más…

Ajax, usabilidad, accesibilidad, programación

  • Si bien tengo algo de experiencia en el ambito web no voy a pecar de guru, pero podria aportar que las aplicaciones desarrolladas en ajax son mas seguras, ya que solo acepta conexiones que provengan del mismo url, evitando asi que el script por el lado del servidor reciba información que provenga de otro sitio, otra ventaja es el asincronismo, si se logra diseñar un sitio para qie el usuario pueda hacer varias cosas a la ves, estaran aprovechando de seguro una de las mejores caracteristica q aporta este metodo, logrando asi un site multitarea, sin ir mas lejos Gmail hizo un excelente trabajo al usar un metodo en el que podemos adjuntar archivos y no tener que esperar a que termine el upload para seguir con la navegacion en el sitio, yo creo que este sistema tiene muchas mas ventajas q desventajas,

    Saludos!

  • Andrés (Tocayo!) realmente si que tiene más ventajas que desventajas, pero no hay que caer en el abuso. Hay que saber donde usar y para que usarlo, y además tener un sistema en el cual podramos realizar funciones similares sin el uso del objeto xmlhttprequest, para no limitar nuestra aplicación.

  • Lo del “botón de atrás” en Ajax tiene solución, no me preguntes cual, para eso está google.
    Y estoy de acuerdo, hay cosas que son mas ajaxeables que otras …

    saludos!
    Mario

  • Buenas….soy nuevo es esto de Ajax…necesito que por favor me orienten con un problema que se me presentó en mi aplicación..
    El rollo es que tengo el archivo index.php y en este se encuentran una serie de enlaces y al hacer click sobre estos la información se carga en una capa de index.php.Cuando se carga la página del enlace “Calcular Imc” se me presenta un problema porque en esa página que se cargó tengo que utilizar un objeto ajax para cargar otra página en una capa de la página que se cargó.Ayudenme por favor.

  • Un articulo muy interesante… estaba buscando algo así. Gracias

  • Por cierto… Gmail parece haber solucionado el problema del boton ‘Atras’ sin dejar de utilizar AJAX

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.