Consejos para cuando uses Ajax

Ajax tiene muchos amigos debido a la Web 2.0 y muchos enemigos, sobre todo debido a la usabilidad. Al igual que dijimos con el tema de Flash, el problema no es Ajax, sino el uso que se da de él. Por eso, conocer estos consejos nos puede venir bastante bien:

  1. No actualices toda la página usando Ajax, ni modifiques elementos HTML que puedas modificar mediante Javascript y el DOM.
  2. Ten en cuenta que habrá visitantes que tengan el Javascript desactivado o usen un navegador con una version de Javascript antigua o no completa como la de los dispositivos móviles.
  3. Cachea, ya sea en el cliente o en el servidor, las peticiones más frecuentes. Por ejemplo, el autocompletado hace peticiones constantemente al servidor, lo que puede gastar recursos del servidor y la base de datos.
  4. No tengas muchas llamadas concurrentes para cambiar la interfaz, normalmente los navegadores solo realizan dos llamadas HTTP a la vez, por lo que si tienes muchas llamadas para cambiar las imágenes, puede volverse muy lenta la carga.
  5. Usa llamadas asíncronas, ya que si las realizas de forma síncrona y hay problemas de red, el navegador se quedará esperando la respuesta.
  6. Prueba tu aplicación web con una conexión lenta.
  7. Comprueba el uso de memoria del navegador mientras ejecutas tu aplicación web durante 1 ahora, 2, 10, un día.
  8. Comprueba el código de estado http que devuelve XMLHttpRequest.
  9. Prueba a desactivar el objeto XMLHttpRequest.
  10. Usa indicadores de carga para saber que la aplicación está cargando algo.
  11. Ten en cuenta que puedan usar el botón de “Atrás” del navegador.
  12. Si es necesario cancelar un petición ten en cuenta que la petición ya está procesándose en el servidor y que el cliente procesará la respuesta.

Yo añadiría que hay que tener en cuenta que el orden de llegada de las respuestas no tiene que ser el mismo que el de las peticiones, si es importante el orden, usa bloqueos pare evitar problemas de concurrencia.

The top 10 mistakes when using AJAX

Vía / dzone