enero 26, 2006

Uso de AJAX para minimizar el tráfico

Igual se lo deberían plantear en alguna gran ciudad, a ver si reducen los atascos... perdón, ya me callo, es un chiste malo.
Se ha publicado en TheServerSide una referencia a un artículo titulado: Using AJAX to Improve the Bandwidth Performance of Web Applications. En dicho artículo se comenta un ejemplo de una aplicación web en la que reducen alredor de un 60% del ancho de banda necesario para su funcionamiento.

Hay dos casos de aplicación de AJAX, como mecanismo de mejora de aplicaciones ya existentes, o como método de implementación de nuevas funcionalidades.
La remodelación de una aplicación existente, para evitar recargar páginas completas, y obteniendo la información necesaria únicamente para redibujar una parte de la página puede significar un importante ahorro en ancho de banda y mejorar la eficiencia general. Pero se debe tener en cuenta el tipo de comunicación a establecer, enviando HTML, o XML, o Javascript... para no crear un pequeño monstruo que cargue en exceso la máquina cliente.
Al crear nuevas funcionalidades con AJAX, el objetivo suele ser dotar de mayor interactividad a las páginas, lo que conlleva el crecimiento del número de peticiones HTTP a los servidores. el típico ejemplo de validación de formularios cada vez que el usuario pulsa una tecla en una caja de texto, multiplica las peticiones y por tanto la carga en el servidor.
La aplicación utilizada en el artículo entra en el primer caso, pero es un ejemplo tan básico que realmente no explica demasiadas cuestiones sobre la complejidad de los factores a tener en cuenta para la eficiencia de una aplicación real.

4 comentarios:

  1. Intente comentarte ayer pero me daba un error en blogger.
    Hay desde hace mas de 5 años una manera que permite reducir el trafico actual mas de un 50 %, cerca de un 90 % y no se utiliza.
    Es utilizar la Cabecera Content-Encoding que soportan los navegadores.
    Es mucho mejor que AJAX ya que no requiere un cambio en el desarrollo, solo tienes que aplicar un filtro, bien de java o bien el mod-gz de apache (por ejemplo).
    Ademas de esto, la otra solucion pasa por utilizar la cabecera "Last-Modified" y tratar la cabecera "If-modified-since", esta permite devolver solo un 303 que le obliga al navegador a coger la pagina de cache.

    Como ves son tecnicas sencillas que sin modificar toda la capa de presentacion pueden hacer que tu proyecto vuele.

    Por cierto, estos trucos los utiliza google, orelly etc , por lo que no son mios.

    ResponderEliminar
  2. Sin duda, troll, esos mecanismos funcionan bien. Esto es para disminuir el ancho de banda un poco más allá, pues comprimiría menos información.

    ResponderEliminar
  3. Cogete cualquier web en España y prueba si tiene cache o gzip en contenido dinamico, si vez que tiene ambos mecanismos, pues enviemos menos, pero seguro que no tienen esos mecanismos y desde mi punto de vista, es mucho mas facil poner un filtro o un mod_gz que generar codigo AJAX.
    Has visto algun framework para AJAX, yo solo tengo experiencia con procesamiento "by hands", no he utilizado ninguno de los frameworks que ultimamente salen.
    Si es asi, comentalo en un POST.

    ResponderEliminar
  4. Pues yo tampoco he utilizado ningún framework en un proyecto real, la verdad que se me hace muy sencillo (y más controlable) el utilizar mis propias funciones JavaScript y manejar mis acciones en el servidor.
    Habrá que probar alguno un día :)

    ResponderEliminar