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');
}