La respuesta es muy compleja y depende de cada situación específica.
Un servidor generalmente será de mayor magnitud que una máquina cliente; y el código administrado es generalmente mucho más rápido que el scripting.
Sin embargo, - la máquina cliente también suele tener una gran cantidad de potencia computacional de repuesto que no se está utilizando, mientras que el servidor podría estar ejecutando solicitudes para miles de usuarios. Entonces, en ese caso, gran parte del trabajo que se puede descargar al cliente es preferible.
Debe comprender las necesidades y expectativas de sus usuarios para cada funcionalidad individual en su aplicación y observar la carga relativa frente al costo de desarrollo para su organización para dividir el desarrollo entre dos entornos y descubrir qué funciona mejor. Por ejemplo, sus usuarios probablemente esperan que su sitio no congele su navegador o desafortunadamente provoque que los diálogos de "esta página web se estén comiendo de su computadora", de modo que las secuencias de comandos de sus clientes se escriban de forma inteligente. Eso no quiere decir que no pueda hacer un ton de trabajo en el cliente (puede hacerlo), solo tiene que ser inteligente acerca de cómo lo hace y recordar que bloquea el hilo de la interfaz de usuario.
Además de todo lo mencionado a continuación (recursos de servidor frente a cliente, compilación de código de bytes en una VM frente a una secuencia de comandos interpretada, etc.) - La velocidad de JavaScript depende del navegador. –
Observo que Facebook ha cambiado el trabajo en sus granjas de servidores [masivas] desde JavaScript para aumentar el rendimiento. –