Sobes.tech
Middle

Quais são as desvantagens do renderizado do lado do servidor (SSR)?

sobes.tech IA

Resposta da IA

Principais desvantagens do SSR:

  • Aumento da carga no servidor: Cada pedido do cliente requer uma renderização completa da página no servidor, o que consome mais recursos (CPU, memória) em comparação com a entrega de ficheiros estáticos ou SPA.
  • Complexidade de desenvolvimento: É necessário considerar a isomorfia do código (execução no servidor e no cliente), gestão do estado entre pedidos, manipulação de dados assíncronos. A depuração pode ser mais difícil.
  • Tempo de inatividade em caso de erros do servidor: Se o servidor principal de renderização falhar, o site pode tornar-se inacessível, ao contrário do SPA, onde o cliente pode continuar a trabalhar com recursos em cache ou páginas de fallback.
  • Tempo até à interatividade (TTI) mais longo: Embora o primeiro conteúdo apareça mais rapidamente (FCP), o utilizador não pode interagir com a aplicação até que todo o JavaScript (hidratação) seja carregado e executado no cliente. No SPA, a interatividade pode surgir mais cedo em partes já carregadas da página.
  • Complexidade no cache: É mais difícil fazer cache do HTML gerado dinamicamente do que recursos estáticos. São necessárias estratégias de cache mais sofisticadas do lado do servidor.
  • Tempo de primeiro byte (TTFB) mais alto: O servidor precisa de tempo para processar a solicitação, obter dados, renderizar HTML e enviar o primeiro byte de volta ao cliente.
  • Podem surgir problemas com o código isomórfico: Algumas APIs do cliente (por exemplo, window, document) não estão disponíveis no servidor, o que requer escrever código condicional ou usar bibliotecas especiais.
// Exemplo de renderização condicional no servidor
if (typeof window === 'undefined') {
  // Código que só é executado no servidor
  console.log('Renderização no servidor');
} else {
  // Código que só é executado no cliente
  console.log('Renderização no cliente');
}