Sobes.tech
Middle

Aké sú nevýhody serverového renderovania (SSR)?

sobes.tech AI

Odpoveď od AI

Hlavné nevýhody SSR:

  • Zvýšené zaťaženie na serveri: Každá požiadavka klienta vyžaduje úplné vykreslenie stránky na serveri, čo spotrebúva viac zdrojov (CPU, pamäť) v porovnaní s poskytovaním statických súborov alebo SPA.
  • Zložitosť vývoja: Je potrebné brať do úvahy izomorfizmus kódu (prácu na serveri a na klientovi), správu stavu medzi požiadavkami, spracovanie asynchrónnych dát. Debugovanie môže byť zložitejšie.
  • Výpadok pri chybách servera: Ak hlavný server pre vykresľovanie zlyhá, stránka môže byť nedostupná, na rozdiel od SPA, kde klient môže pokračovať v práci s cacheovanými zdrojmi alebo fallback stránkami.
  • Dlhší čas do interaktivity (TTI): Hoci prvý obsah sa objaví rýchlejšie (FCP), používateľ nemôže interagovať s aplikáciou, kým sa na klientovi nenahrá a nevykoná celý JavaScript (hydration). V SPA môže byť interaktivita skôr na už načítaných častiach stránky.
  • Zložitosť cacheovania: Cacheovanie dynamicky generovaného HTML je zložitejšie ako statických zdrojov. Sú potrebné sofistikovanejšie stratégie cache na strane servera.
  • Vyšší čas prvého bajtu (TTFB): Server potrebuje čas na spracovanie požiadavky, získanie dát, renderovanie HTML a odoslanie prvého bajtu späť klientovi.
  • Problémy s izomorfným kódom: Niektoré API klienta (napríklad window, document) nie sú dostupné na serveri, čo vyžaduje písanie podmienkového kódu alebo použitie špeciálnych knižníc.
// Príklad podmienkového renderovania na serveri
if (typeof window === 'undefined') {
  // Kód, ktorý sa vykonáva iba na serveri
  console.log('Renderovanie na serveri');
} else {
  // Kód, ktorý sa vykonáva iba na klientovi
  console.log('Renderovanie na klientovi');
}