¿Procesamiento por separado frente al procesamiento del lado del cliente + ajax?

Buscando algunos consejos generales y / o pensamientos ...

Estoy creando lo que creo que es más una aplicación web y luego una página web, porque tengo la intención de que sea como una aplicación de Gmail donde dejaría la página abierta todo el día mientras recibía actualizaciones "empujadas" a la página (para el Interesado estoy usando la técnica de programación del cometa). Nunca antes había creado una página web que fuera tan rica en ajax y javascript (ahora soy un gran fan de jQuery). debido a esto, una y otra vez cuando estoy implementando una nueva función que requiere un cambio dinámico en la interfaz de usuario que el servidor necesita conocer, me enfrento con la misma pregunta:

1) ¿Debo hacer todo el procesamiento en el cliente en javascript y publicar lo menos posible a través de ajax o 2) Debo enviar una solicitud al servidor a través de ajax, hacer que el servidor realice todo el procesamiento y luego enviar el nuevo html . Luego, en la respuesta ajax, hago una tarea simple con el nuevo HTML.

Me he inclinado a seguir siempre el # 1. Esta aplicación web que imagino puede ser bastante habladora con todas las solicitudes de ajax. Mi idea es minimizar tanto como sea posible el tamaño de las solicitudes y las respuestas, y confiar en los motores de javascript que mejoran continuamente para realizar la mayor cantidad posible de procesamiento y actualizaciones de la interfaz de usuario. He descubierto que con jquery puedo hacer tanto en el lado del cliente que antes no habría podido hacer con mucha facilidad. mi código javascript es en realidad mucho más grande y más complejo que el código de mi servidor. También necesito realizar cálculos simples y también lo he puesto en el lado del cliente.

Supongo que la pregunta principal que tengo es: ¿deberíamos SIEMPRE esforzarnos por el procesamiento del lado del cliente sobre el procesamiento del lado del servidor siempre que sea posible? Siempre he sentido que cuanto menos tiene que manejar el servidor para mejorar su escalabilidad / rendimiento. Deje que el poder del procesador del cliente haga todo el trabajo duro (si es posible).

pensamientos?

Respuestas a la pregunta(9)

Su respuesta a la pregunta