Descargo de responsabilidad: soy un gran defensor de las aplicaciones de una sola página y escalado mediante el uso de la potencia informática del lado del cliente en lugar de la potencia informática del lado del servidor.
- Lógica de negocios. La lógica comercial especial solo debe estar en el servidor. Una regla general para los SPA es que cualquiera debería poder escribir una IU para su sitio y no tener que replicar ninguna lógica de negocios. La lógica en el SPA es cómo accede, visualiza y modifica los datos y no la lógica empresarial personalizada para su aplicación.
- Manejo de grandes cantidades de datos. Tenga en cuenta el uso de la palabra “muy”. El navegador moderno generalmente puede manejar más datos de los que un humano puede ver razonablemente (tenga en cuenta que estoy pensando en filas de tabla y no en visualizaciones complejas). El problema se convierte en el tamaño del DOM y eso es una preocupación del lado del cliente. El cliente puede retener datos y no generar DOM para ello. El servidor tiene la ventaja de ser una máquina robusta y también apátrida. Esto significa que para grandes datos procesará y luego liberará la memoria. Un buen ejemplo de esto es buscar a través de sus datos. Muchos sitios tienen una función de búsqueda y esto debería pasar por un índice del lado del servidor para generar un conjunto de resultados. El conjunto de resultados es lo que debe obtener el cliente.
- Actas. Si desea que las operaciones sean transaccionales, entonces querrá hacerlo en el servidor. Teóricamente podrías hacerlo en el cliente, pero estarías abriendo un mundo de dolor. Un ejemplo sería crear una entrada en la base de datos y enviar un correo electrónico. Solo quieres hacerlos si ambos tienen éxito.
- Validación. Irónicamente, la validación es una de las principales razones por las cuales las personas desean un código del lado del cliente, pero toda la validación debe ser del lado del servidor. Un subconjunto también puede ser del lado del cliente, pero este es un código replicado y nunca se debe confiar en él.
- Permisos y seguridad. Todo en el cliente no es seguro. Suponga que el usuario puede hacer cualquier cosa con los datos que tiene. Toda la lógica de permisos debe estar en el servidor y no debe enviar ningún dato al cliente que no esté destinado al cliente.