Claramente, AJAX mejora la interfaz de usuario, pero ¿esto también disminuye la carga del servidor? Pensarías que sí, porque no será necesario publicar toda la página cada vez, pero tal vez hay otras variables que no estoy considerando.
fuente
Claramente, AJAX mejora la interfaz de usuario, pero ¿esto también disminuye la carga del servidor? Pensarías que sí, porque no será necesario publicar toda la página cada vez, pero tal vez hay otras variables que no estoy considerando.
Depende de lo que esté haciendo y de cómo lo esté haciendo.
Si está reemplazando cargas de página completa con solicitudes AJAX (es decir, solo haciendo llamadas AJAX cuando un usuario hace clic en lo que habría sido una carga de página completa), entonces AJAX disminuirá la carga del servidor porque (presumiblemente) está procesando menos y devolviendo menos datos.
Por otro lado, si está agregando el tipo de actualización automática AJAX que sondea el servidor cada pocos segundos, eso podría aumentar la carga dependiendo del usuario (es posible que no aumente la carga del servidor si el usuario sigue presionando F5 para actualizar manualmente de todos modos, pero la mayoría de la gente generalmente no hace eso por horas)
Otra optimización de AJAX es cargar solo más datos a medida que se desplaza. En ese caso, si el usuario no se desplaza completamente hacia abajo, es un procesamiento desperdiciado.
Por supuesto, la implementación en realidad puede sesgar los resultados de cualquier manera, estos son resultados típicos suponiendo implementaciones razonablemente buenas.
Por supuesto, sirve para disminuir la carga del servidor. Mire esta presentación @ jsconf'09 : cómo Facebook usó ajax para hacer eso.
Ajax es asíncrono. comunicación del servidor, y puede usarla de muchas maneras. La gente lo usa para cargar JSON simple a la Web en tiempo real, y todo lo demás.
Recuerde: el verdadero desafío es el equilibrio entre el cliente y el servidor. Esfuércese por hacer que cada parte haga su trabajo de manera que el sistema esté optimizado y obtenga beneficios obvios de la capacidad de respuesta percibida y la velocidad real.
fuente
Hay otros factores que no está considerando: en la mayoría de los casos, AJAX aumentará la carga del servidor. En un escenario típico que no es ajax, un usuario carga una página grande cada pocos segundos o pocos minutos. Sí, esa única página es un poco más de trabajo para el servidor, pero tiene mucho tiempo entre solicitudes para recuperar y servir otras solicitudes. En un escenario AJAXified, esa carga de una sola página ahora es decenas de pequeñas visitas, constantemente martillando el servidor y esperando respuestas.
Es un poco como la muerte de 1000 cortes: ninguna de las solicitudes es tan grande en sí misma, pero el peso total es mortal. Especialmente cuando comienzas a considerar que estas pequeñas solicitudes son tan caras de servir como una solicitud de página completa. En ambos casos, probablemente esté ejecutando una tubería de aplicación web completa, golpeando una base de datos y esperando una respuesta mientras se encuentra en una preciosa conexión HTTP.
Aquí hay un ejemplo de cómo ajax puede ponerse feo en el servidor muy rápido. Tomemos un típico "tablero ejecutivo" que presenta 4 ranuras para widgets. Digamos que al CEO le gusta un informe de ventas completo en el lado derecho, una lista de los 10 principales ganadores en el medio y un informe de precios de acciones de la compañía a la derecha. Y digamos que vamos a hacer esto a través de simples solicitudes remotas ajax. Sin tener en cuenta las hojas de estilo, las imágenes y otros activos, su página ahora requiere 4 viajes de ida y vuelta HTTP (página principal, cada uno de los informes del tablero) contra el servidor. Cada uno de estos requiere una pila web completa para ejecutarse: vas a acceder a bases de datos y renderizar HTML usando tu marco web, ¿verdad? Ahora multiplique el CEO único por 2000 usuarios remotos, algunos de los cuales tienen conexiones irregulares.
Por el contrario, podría tener una única página del lado del servidor que ejecute y devuelva un esqueleto HTML, así como los datos (incluidos en JSON en la página) para representar los informes. Conexión única y más grande, pero menos golpes en el servidor web en total porque no está manejando 4 solicitudes y girando 4 tuberías, etc.
fuente
Si está utilizando AJAX para reemplazar el trabajo que el servidor estaría haciendo, sí, eso mejorará el rendimiento del servidor. Sin embargo, es posible que haya diseñado cosas para que el servidor siga haciendo lo mismo y ahora lo que sea que esté sucediendo con AJAX esté por encima de lo que el servidor ya estaba haciendo.
Principalmente se trata de cosas de la interfaz de usuario, ya que no debería hacer nada más en el lado del cliente. Básicamente, todo lo que el servidor estaba haciendo para admitir la interfaz de usuario (por ejemplo, volver a cargar la página con un diseño diferente en respuesta a la entrada del usuario) lo hace con JavaScript.
fuente
Si la representación HTML es una gran parte del perfil de rendimiento de su servidor de aplicaciones, mover la representación HTML al cliente puede ser una ganancia de rendimiento en el servidor de aplicaciones.
Sin embargo, si la representación HTML es una pequeña parte del perfil de rendimiento de su servidor de aplicaciones, más solicitudes típicamente significarán más viajes a través de la pila, más consultas, más de todo en el servidor de aplicaciones, una pérdida de rendimiento.
Por supuesto, la única forma de saber en su caso particular es probarlo.
fuente
Debe considerar la mejor manera de implementar su solución. Una forma simple no dinámica no necesita ajax y agregarla puede dañar el rendimiento. Si su problema son malas consultas, toda la optimización de ajax en el mundo no le dará un aumento de rendimiento que será aceptable.
Si su servidor está sobrecargado de trabajo, debe averiguar por qué.
Si está recibiendo muchos golpes, entonces ajax no va a solucionar ese problema, necesita más capacidad. Agregar ajax solo aumentará la cantidad de solicitudes que su servidor debe manejar.
Si tiene una página complicada, debería ver si hay algo que pueda hacer del lado del cliente para reducir la carga en su servidor. Si su página es dinámica pero realmente tiene un paquete de datos en caché limitado que para el ajuste del lado del cliente puede dar mejores resultados.
Y algunas veces Ajax ayudará. Cuando tiene formularios complejos con datos dinámicos, ajax gana el día. Pero si sus consultas son complicadas y demoran mucho tiempo en ejecutarse, entonces ajax aún no resolverá su problema.
fuente