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.
7 comentarios, 5 referencias
+
#