lunes, 8 de octubre de 2007

Ventajas y desventajas de Ajax

Veamos algunas ventajas representativas del uso de AJAX:

  • La experiencia de usuario en la navegación es mucho más rica. Ya no se refresca la página constantemente al interactuar con ella.
  • El tiempo de espera para una petición se reduce. El usuario al hacer un pedido (request) al servidor, no se envía toda la página.
  • Por la misma razón anterior el trafico al servidor se reduce.

Como ejemplo podemos ver esta web, que por cierto, hace uso de la nueva API (Google AJAX Search API) que Google a lanzado para los desarrolladores, lo que antes se hacía vía servicios Web. Y no esta demás decir que forma parte de toda la revolución de Web 2.0.

Y como dijo, todo no es color de rosa. Pues también hay desventajas que debemos tener en cuenta:

  • Falta de integración con el botón retroceder del navegador. Se debe tener en cuenta esto al intentar guardar funcionalidad con este botón.
  • Falta de soporte para todos los navegadores. Aunque esto se va reduciendo, el problema se presenta por la falta de soporte para JavaScript y XMLHttpRequest.
  • Problemas si el usuario ha deshabilitado el uso de JavaScript en su navegador. Hay que tener esto en cuenta cuando desarrollamos nuestro sitio web, para enfrentarnos a esta situación.
  • No poder recomendar links específicos. Si hace que toda la web sea interactiva, no podremos recomendar algún link, ya que el contenido fue generando dinámicamente. Se debería encontrar un equilibrio dependiendo de las necesidades de su escenario.
  • Demasiado código Ajax hace lento el navegador. A más Ajax, más uso de código JavaScript del lado del browser, por consiguiente mayor trabajo del browser. El rendimiento del cpu puede verse afectado. Hace años recuerdo un código JavaScript que consumía casi toda la capacidad del CPU, por eso no hay que abusar del AJAX.
Otra Bibliografía
  1. No dar señales inmediatas que los links se están cargando.
    Cuando uno normalmente hace clic en un link, se da cuenta inmediatamente que la página se esta cargando, por el contrario cuando uno hace clic utilizando Ajax, la página no se recarga, lo que se recarga es una parte de la página, muchas veces, sin que el usuario se de cuenta. Como el usuario normalmente no esta enterado de que tal link recarga sólo determinada información la pasaría por alto, es por esto que por ejemplo, en Gmail cada vez que realizamos un clic, nos aparece una cajita roja en la parte superior derecha, indicando que la página se está cargando. No debemos descuidar esto.
  2. Falta de Integración con el Botón de Retroceder Página del Navegador.
    La mayoría de usuarios (y me incluyo) solemos utilizar continuamente el botón de Retroceder Página (Atrás); sin embargo y desafortunadamente, este botón no se integra muy bien con Javascript. Por lo que, el tratar de guardar funcionalidad con este botón, es un punto en contra no solamente con Ajax, sino también con varias aplicaciones Javascript.
  3. Cambiando el estado de los links (GET)
    El hecho de que al hacer clic en un link, este no nos lleve a otra página, podría ocasionarnos problemas. Problemas no con relación a los robots que nos indexan las páginas web (googlebot, inktomi, etc.), sino también para aquellos usuarios que están acostumbrados a navegar a través de estos links, lo cual los confundiría.
  4. No poder recomendar links específicos.
    Otra característica común de los websites es el poder pasar URLs a nuestros amigos (hacer recomendaciones de determinadas páginas) y así poder ver lo mismo. Lo que con Ajax sería un problema, puesto que el Javascript está generando dinámicamente la página en vez del servidor. Ante esto deberíamos de crear aplicaciones que incluyan permalinks a fin de no tener problemas.
  5. Demasiado código Ajax hace lento al navegador.
    Ajax nos sumerge en una manera muy interesante de utilizar Javascript, pero que significa a menudo un mayor funcionamiento del código, esto es, un mayor trabajo del browser. La velocidad de la aplicación podría verse afectada seriamente por el CPU del usuario. Esto no es algo nuevo, desde hace mucho se discutía con las aplicaciones Javascript, y aunque el avance tecnológico nos permite tener computadoras mucho más potentes, no debemos descuidar este punto.

Bibliografía
http://geeks.ms/blogs/sergiotarrillo/archive/2007/01/09/8420.aspx
http://www.baluart.net/articulo/55/xmlhttprequest-ajax-ventajas-y-desventajas.php