¿Cómo debo decidir si quiero usar la representación del lado del cliente o del servidor para un panel de administración?

Mi solución, en general, sería usar ambos. La representación del lado del servidor (SSR) generalmente es útil para mejorar el tiempo de carga inicial de la página, mientras que la representación de solo los cambios después de la carga de la página en el lado del cliente proporciona un excelente rendimiento.

En lugar de desarrollar dos versiones diferentes de su sitio, recomendaría usar un lenguaje y / o marco que pueda usarse tanto en el cliente como en el servidor. React es una de esas soluciones, y se vuelve increíblemente rápido tanto en el lado del cliente como del servidor.

Tenga en cuenta que aún tendrá que aplicar las optimizaciones de front-end típicas, ya sea utilizando el renderizado del lado del cliente o del servidor, para lograr un mejor rendimiento. Minimiza los viajes de ida y vuelta, la carga lenta, el movimiento de los árboles, el uso de SVG para el arte vectorial, el uso de srcset y el tamaño para las imágenes ráster, la optimización de las imágenes, la ruta por encima del pliegue / crítica para css, imágenes, webfonts, etc., elimina los scripts de bloqueo , utilizando CDN y una estrategia de almacenamiento en caché adecuada, en línea donde corresponda, etc.

Por lo general, prefiero la representación del lado del servidor solo si deseo que las páginas de mi sitio web sean indexadas por los motores de búsqueda. Los motores de búsqueda son muy buenos para analizar y rastrear páginas html puras, pero apestan cuando se trata de ejecutar JavaScript de forma asíncrona después de que el html se haya cargado en el navegador.

Cuando tengo que construir algo como un tablero que necesita un inicio de sesión, no hay forma de que el rastreador del motor de búsqueda acceda a estas páginas de todos modos. Para tal escenario, prefiero una API REST en el backend con representación del lado del cliente como AngularJS, ReactJS u otros motores de plantillas del lado del cliente. Las ventajas de dicho diseño son:

1. El usuario obtiene una experiencia de interfaz de usuario fluida.

2. Solo la carga inicial del lado será un poco más lenta (ya que todos los scripts js deben descargarse del lado del cliente desde el servidor), después de eso, para todas las solicitudes, solo se envían datos de ida y vuelta. Por lo tanto, menos carga en el servidor y en el cliente.

3. Como el servidor de fondo es REST API, no importa cuál sea la tecnología del lado del cliente, por ejemplo, es posible que desee crear una aplicación de Android o iOS para su panel de administración (en este caso, no tiene que hacer ningún tipo de cambios en el código del lado del servidor).

4. Incluso si en el futuro surge un requisito en el que debe crear un sitio web que los motores de búsqueda deben indexar, puede crear un servidor de fondo que llame a la API REST para obtener los datos y luego utilice alguna plantilla de representación del lado del servidor motor como manillar.

Si tiene Representación del lado del servidor, generalmente se necesita mucho más ancho de banda para enviar la información a través de Internet. Para la representación del lado del cliente, solo toma los datos necesarios en el tablero de instrumentos. También es mucho más fácil cambiar la representación del lado del cliente que la representación del lado del servidor y personalizarla para cada usuario.