Ajax: donde usarlo y donde no

Alex Bosworth hizo una buena lista de lugares donde Ajax sirve y donde no sirve… quizás este tipo de listas sirvan para evitar los mismos errores que hicieron de Flash, una aplicación excelente, algo bastante mal entendido en los desarrolladores.

Donde se DEBE usar Ajax
– Interaccion vía formularios
– Navegación de aplicaciones del tipo jerárquica
– Comunicación rápida de usuario-a-usuario
– Votaciones y calificaciones online.
– Filtrado y manipulación de datos
– Campo de texto usados comunmente (autocomplete)

Donde hay que evitarlo
– Formularios simples: si no hay más que un paso.. ¿cual es el beneficio de ajax?
– Búsquedas: este punto es bastante personal, conozco muchos que aman esta funcionalidad.. aunque a mi nunca termina de convencerme más que para dar un hint y punto.
– Navegación básica: este es un error típico también con Flash ¿cual es la necesidad de hacer un menu con dos boxes que digan “inicio” y “Contacto” en flash.. o en ajax… o en algo más que no sea algo simple?
– Reemplazo de grandes cantidades de texto: muy buen punto.. ¿si al hacer click va a cambiar la mayoría de los datos de una página para que usamos algo que sirve para traer datos asincrónicos si en realidad debería aparecer algo totalmente nuevo?
– Manipulación de interfaz de usuario: para manejo de UI ya existe XHTML/HTML DOM, y CSS que fueron creadas para esto y no para manejar datos.
– Widgets inútiles

Este tipo de listas, repito, pueden ayudar a que algunos errores de Ajax se eviten, aunque algunas de estas “quejas” son simple falta de conocimiento. Por ejemplo muchos dicen que con Ajax se “rompe” el uso del back-button… cuando en realidad hace bastante tiempo que existen soluciones a ese punto.

También podés agrandar, opinar o colaborar en esta lista en el Wiki de Sourcelabs

Actualización, Leo ya había hablado de esto

12 thoughts on “Ajax: donde usarlo y donde no”

  1. Con respecto al punto cuatro “Reemplazo de grandes cantidades de texto”, yo pienso que siempre que pueda indicarse de alguna manera que el contenido de la página ha cambiado (estilo “Loading…” o con cambios de aspecto), esta forma de traer información puede revestir la ventaja de ahorrar peticiones que ya se han hecho y que no van a cambiar (ej.: imágenes), aligerando la transferencia.

  2. He conseguido (hasta donde yo se, es “invento” mio) que me funcionen los botones de back en una aplicacion en flash… he escrito una clase, aunq no la he publicado aun en ningun sitio.
    El ejemplo funcionando:
    http://www.bancodepruebas.de/sol90
    si alguien esta interesado en saber como se hace… ya lo explicaré en detalle.

  3. Laleft: Sobre “Reemplazo de grandes cantidades de texto”, el problema es que si cambia tanto el contenido de una página, ya debería tratarse de un documento aparte. Y se podría tirarle un palo a Gmail en este caso, pero nadie necesita permalinks ahí dentro.
    Ojo porque los de votaciones y formularios simples es una contradicción. Una votación (los tipicos poll) son formularios simples.
    Y lo de manejo de la interfaz: si te venden eso como Ajax, te vieron la cara. :)

  4. Federico: es correcto lo que decís. Asumo que se trata de un caso justificado, como bien citás Gmail, y ahí radicaría la ventaja. De todas formas, no es nada difícil facilitar un enlace para llegar a la información solicitada (Google Maps?).

    Llegado el caso, aun son peores los sitios completamente hechos en flash, donde un permalink directamente no existe y el problema del botón back (que, de hecho, no funciona como yo lo uso: desde el teclado), son un problema mucho mayor.

  5. victor.. sería bueno ver si tu solución es mejor que esa de ContentwithStyle :)

    Fede, lo de las votaciones es cierto.. pero creo que la logica es cuando hacer calificaciones online.. solo se modifica una parte de la página y listo.. en cambio cuando haces formularios simples.. la respuesta es una pagina nueva y ahi AJAX es al pedo.. creo ;)

    Laleft.. totalmente de acuerdo con los sites en flash

  6. Pingback: meneame.net
  7. Perdón, Mariano, por usar tus comentarios.
    Laleft: No soy usuario de GMaps, pero ¿acaso se actualiza la URL en el barra de direcciones cuando navegas? Supongo que las funciones de enviar un enlace por correo (usando los controles nativos del navegador) tampoco funcionarian. :)

  8. No tengo idea qué agente de usuario utilizás, Federico. Con Firefox, haciendo click derecho sobre el enlance que dice “Link to this page” y seleccionando “Enviar enlance…”, se abre mi cliente de correo con un enlace como este:

    http://maps.google.com/maps?ll=-34.603435,-58.381315&spn=0.003557,0.006941&t=k&hl=en

    Creo que eso alcanza para evitar semejante horror.
    Vamos, esto no es tu verdad contra la mía, ni siquiera se trata de verdades. Esta técnica tiene sus pro y sus contra, solamente estaba destacando una ventaja y cómo cubrir las necesidades más importantes.
    Saludos.

  9. La “Barra de direcciones” aka “el lugar donde escribis una URL” no se actualiza a medida que vas navegando en los maps de Gmaps, entonces no podés simplemente copiar el link desde ahí. Por otro lado, funciones como “Send link” en Firefox tampoco sirven porque la URL que envias es http://maps.google.com/. Entiendo que puedas usar la opción que te dan ellos de “Link to this page” pero es un “parche” para reemplazar una función del navegador.

Leave a Reply to Laleft Cancel reply

Your email address will not be published. Required fields are marked *