====== CSR (Client-Side Rendering) ====== **CSR** je základním kamenem moderních jednostránkových aplikací (SPA). Umožňuje vytvářet weby, které působí stejně plynule jako aplikace v mobilu – při přechodu mezi sekcemi se stránka neproblikne ani znovu nenačítá, mění se pouze její obsah. ===== 1. Jak CSR funguje v praxi? ===== 1. **Prvotní požadavek:** Uživatel navštíví web. 2. **Minimalistická odpověď:** Server pošle velmi malý HTML soubor (často jen prázdný ''
'' a odkaz na JavaScript). 3. **Stahování JS:** Prohlížeč začne stahovat hlavní JavaScriptový balík (framework jako [[it_encyklopedie:react|React]] nebo [[it_encyklopedie:vue|Vue]]). 4. **Vykreslení:** JavaScript se spustí, vytvoří strukturu webu a zobrazí ji uživateli. 5. **Načtení dat:** Pokud jsou potřeba data (např. seznam produktů), JavaScript si je vyžádá přes API a "vstříkne" je do stránky. ===== 2. Hlavní výhody CSR ===== * **Plynulý uživatelský zážitek:** Jakmile se aplikace jednou načte, je navigace mezi stránkami okamžitá. Žádné bílé obrazovky mezi kliknutími. * **Snížení zátěže serveru:** Server pouze odesílá statické soubory. Veškerou výpočetní práci spojenou s vykreslováním odvádí počítač nebo mobil uživatele. * **Ideální pro webové aplikace:** Pro dashboardy, editory nebo sociální sítě, kde uživatel tráví hodně času a provádí mnoho interakcí, je CSR nejlepším řešením. ===== 3. Nevýhody a rizika ===== * **Pomalý první start:** Uživatel musí nejdříve stáhnout a spustit celý JavaScript. Na slabších mobilech to může znamenat několik sekund čekání u prázdné obrazovky (tzv. "White Screen of Death"). * **SEO výzvy:** Vyhledávače (zejména ty starší nebo méně pokročilé) mohou vidět jen prázdnou stránku, protože nečekají na spuštění JavaScriptu. Googlebot už JS zvládá, ale stále je to pro něj náročnější než u [[it_encyklopedie:ssr|SSR]]. * **Závislost na výkonu zařízení:** Pokud má uživatel starý telefon, může být aplikace zasekaná, protože vykreslování spotřebovává hodně procesorového výkonu. ===== 4. Srovnání: CSR vs. SSR ===== ^ Vlastnost ^ CSR (Klient) ^ SSR (Server) ^ | **První načtení** | Pomalejší (stahuje se JS) | Rychlejší (posílá se HTML) | | **Přechody mezi stránkami** | Okamžité, plynulé | Pomalé (nový požadavek) | | **Indexace (SEO)** | Náročnější | Bezproblémová | | **Závislost na internetu** | Potřebuje stabilitu pro API | Stačí pro stažení HTML | ===== 5. Kdy CSR (ne)použít? ===== * **ANO:** Interní systémy, administrace, interaktivní nástroje (např. Figma, Gmail), weby vyžadující přihlášení (kde SEO není prioritou). * **NE:** Veřejné magazíny, e-shopy (kde záleží na každé milisekundě a SEO), jednoduché statické weby. > **Zlatá střední cesta:** Dnešní moderní frameworky jako Next.js nebo Nuxt.js se snaží oba světy kombinovat. První stránku vám pošlou jako **SSR** (pro rychlost a SEO) a jakmile ji otevřete, přepnou se do **CSR** módu (pro plynulost). [[it_encyklopedie:it_architektura_rozcestnik|Zpět na Architekturu]]