1 of 67

2 of 67

3 of 67

4 of 67

SSR

CSR

5 of 67

Episodio IV

Una sola pagina

6 of 67

Cosa succede in una single page application

Quando carichiamo una Single Page Application (SPA) nel browser, avvengono una serie di operazioni:�

  • Download dell'HTML, JS, CSS e di tutte le risorse iniziali

7 of 67

Cosa succede in una single page application

Quando carichiamo una Single Page Application (SPA) nel browser, avvengono una serie di operazioni:�

  • Download dell'HTML, JS, CSS e di tutte le risorse iniziali
  • Parsing ed esecuzione del Javascript

8 of 67

Cosa succede in una single page application

Quando carichiamo una Single Page Application (SPA) nel browser, avvengono una serie di operazioni:�

  • Download dell'HTML, JS, CSS e di tutte le risorse iniziali
  • Parsing ed esecuzione del Javascript
  • Avvio del framework, con conseguente bootstrap dell'app

9 of 67

Cosa succede in una single page application

Quando carichiamo una Single Page Application (SPA) nel browser, avvengono una serie di operazioni:�

  • Download dell'HTML, JS, CSS e di tutte le risorse iniziali
  • Parsing ed esecuzione del Javascript
  • Avvio del framework, con conseguente bootstrap dell'app
  • Reindirizzamento interno al framework in base al routing

10 of 67

Cosa succede in una single page application

Quando carichiamo una Single Page Application (SPA) nel browser, avvengono una serie di operazioni:�

  • Download dell'HTML, JS, CSS e di tutte le risorse iniziali
  • Parsing ed esecuzione del Javascript
  • Avvio del framework, con conseguente bootstrap dell'app
  • Reindirizzamento interno al framework in base al routing
  • Rendering del componente pagina adeguato

11 of 67

Cosa succede in una single page application

Quando carichiamo una Single Page Application (SPA) nel browser, avvengono una serie di operazioni:�

  • Download dell'HTML, JS, CSS e di tutte le risorse iniziali
  • Parsing ed esecuzione del Javascript
  • Avvio del framework, con conseguente bootstrap dell'app
  • Reindirizzamento interno al framework in base al routing
  • Rendering del componente pagina adeguato
  • Eventuali chiamate API per ottenere i dati

12 of 67

Cosa succede in una single page application

Quando carichiamo una Single Page Application (SPA) nel browser, avvengono una serie di operazioni:�

  • Download dell'HTML, JS, CSS e di tutte le risorse iniziali
  • Parsing ed esecuzione del Javascript
  • Avvio del framework, con conseguente bootstrap dell'app
  • Reindirizzamento interno al framework in base al routing
  • Rendering del componente pagina adeguato
  • Eventuali chiamate API per ottenere i dati
  • Aggiornamento della UI della pagina in base ai dati ottenuti

13 of 67

14 of 67

15 of 67

16 of 67

17 of 67

18 of 67

Episodio V

Il server colpisce ancora

19 of 67

Cosa succede in una server side application

Quando carichiamo una Server Side Rendered App (SSR) nel server e nel browser, avvengono una serie di operazioni:

  • Il server esegue il rendering della pagina richiesta,�generando HTML già pronto con i dati (se disponibili)

20 of 67

Cosa succede in una server side application

Quando carichiamo una Server Side Rendered App (SSR) nel server e nel browser, avvengono una serie di operazioni:

  • Il server esegue il rendering della pagina richiesta,�generando HTML già pronto con i dati (se disponibili)
  • Invio della risposta HTML al browser

21 of 67

Cosa succede in una server side application

Quando carichiamo una Server Side Rendered App (SSR) nel server e nel browser, avvengono una serie di operazioni:

  • Il server esegue il rendering della pagina richiesta,�generando HTML già pronto con i dati (se disponibili)
  • Invio della risposta HTML al browser
  • Il browser riceve l'HTML renderizzato, lo interpreta e lo mostra all'utente

22 of 67

Cosa succede in una server side application

Quando carichiamo una Server Side Rendered App (SSR) nel server e nel browser, avvengono una serie di operazioni:

  • Il server esegue il rendering della pagina richiesta,�generando HTML già pronto con i dati (se disponibili)
  • Invio della risposta HTML al browser
  • Il browser riceve l'HTML renderizzato, lo interpreta e lo mostra all'utente
  • Download delle risorse statiche (JS, CSS, immagini, ecc.)

23 of 67

Cosa succede in una server side application

Quando carichiamo una Server Side Rendered App (SSR) nel server e nel browser, avvengono una serie di operazioni:

  • Il server esegue il rendering della pagina richiesta,�generando HTML già pronto con i dati (se disponibili)
  • Invio della risposta HTML al browser
  • Il browser riceve l'HTML renderizzato, lo interpreta e lo mostra all'utente
  • Download delle risorse statiche (JS, CSS, immagini, ecc.)
  • Il framework si avvia anche nel browser, prende il controllo dell’app già renderizzata e la rende interattiva (idratazione)

24 of 67

ng add @angular/ssr

25 of 67

26 of 67

27 of 67

28 of 67

29 of 67

30 of 67

31 of 67

32 of 67

Cosa ci fa il server Express dentro ad Angular

Questo file è il server-side entry point per un'app Angular, che abilita il Server-Side Rendering (SSR) usando Express.js.

  • Crea un server Express.js
  • Serve i file statici generati dalla build Angular
  • Esegue il rendering lato server per le route Angular
  • Avvia il server sulla porta fornita o su 4000

33 of 67

constructor() {

afterNextRender(() => {

this.userImg = sessionStorage.getItem('userAvatar');

this.userName = sessionStorage.getItem('userName');

});

}

constructor() {

afterRenderEffect(() => {

const color = this.color();

document.body.style.background = color;

});

}

afterRenderEffect

afterNextRender

34 of 67

live demo score lighthouse

LIVE DEMO

TODO

35 of 67

I principali vantaggi delle server side app

  • ⚡ Caricamento iniziale più veloce (soprattutto su connessioni lente)

36 of 67

I principali vantaggi delle server side app

  • ⚡ Caricamento iniziale più veloce (soprattutto su connessioni lente)
  • 🔍 SEO migliorato (i motori di ricerca vedono subito l’HTML completo)

37 of 67

I principali vantaggi delle server side app

  • ⚡ Caricamento iniziale più veloce (soprattutto su connessioni lente)
  • 🔍 SEO migliorato (i motori di ricerca vedono subito l’HTML completo)
  • 📊 Web Vitals migliori (es. LCP, TTI)

38 of 67

I principali vantaggi delle server side app

  • ⚡ Caricamento iniziale più veloce (soprattutto su connessioni lente)
  • 🔍 SEO migliorato (i motori di ricerca vedono subito l’HTML completo)
  • 📊 Web Vitals migliori (es. LCP, TTI)
  • 🧩 Contenuti visibili prima del caricamento JS completo

39 of 67

I principali vantaggi delle server side app

  • ⚡ Caricamento iniziale più veloce (soprattutto su connessioni lente)
  • 🔍 SEO migliorato (i motori di ricerca vedono subito l’HTML completo)
  • 📊 Web Vitals migliori (es. LCP, TTI)
  • 🧩 Contenuti visibili prima del caricamento JS completo
  • 🛠️ Ottimo per app con contenuti dinamici condivisibili (es. articoli, prodotti)

40 of 67

Episodio VI

Il ritorno dei siti statici

41 of 67

Cosa succede in una static site generated app

Quando carichiamo una Static Site Generated App (SSG) nel browser, avvengono una serie di operazioni:

  • Il server (o CDN) restituisce un file HTML statico, generato in fase di build

42 of 67

Cosa succede in una static site generated app

Quando carichiamo una Static Site Generated App (SSG) nel browser, avvengono una serie di operazioni:

  • Il server (o CDN) restituisce un file HTML statico, generato in fase di build
  • Il browser riceve l’HTML renderizzato, lo interpreta e lo mostra all’utente

43 of 67

Cosa succede in una static site generated app

Quando carichiamo una Static Site Generated App (SSG) nel browser, avvengono una serie di operazioni:

  • Il server (o CDN) restituisce un file HTML statico, generato in fase di build
  • Il browser riceve l’HTML renderizzato, lo interpreta e lo mostra all’utente
  • Download delle risorse statiche (JS, CSS, immagini, ecc.)

44 of 67

Cosa succede in una static site generated app

Quando carichiamo una Static Site Generated App (SSG) nel browser, avvengono una serie di operazioni:

  • Il server (o CDN) restituisce un file HTML statico, generato in fase di build
  • Il browser riceve l’HTML renderizzato, lo interpreta e lo mostra all’utente
  • Download delle risorse statiche (JS, CSS, immagini, ecc.)
  • Il framework prende il controllo della pagina e la rende interattiva

45 of 67

Cosa succede in una static site generated app

Quando carichiamo una Static Site Generated App (SSG) nel browser, avvengono una serie di operazioni:

  • Il server (o CDN) restituisce un file HTML statico, generato in fase di build
  • Il browser riceve l’HTML renderizzato, lo interpreta e lo mostra all’utente
  • Download delle risorse statiche (JS, CSS, immagini, ecc.)
  • Il framework prende il controllo della pagina e la rende interattiva
  • Navigazione interna in modalità SPA, con routing gestito sul client

46 of 67

Cosa succede in una static site generated app

Quando carichiamo una Static Site Generated App (SSG) nel browser, avvengono una serie di operazioni:

  • Il server (o CDN) restituisce un file HTML statico, generato in fase di build
  • Il browser riceve l’HTML renderizzato, lo interpreta e lo mostra all’utente
  • Download delle risorse statiche (JS, CSS, immagini, ecc.)
  • Il framework prende il controllo della pagina e la rende interattiva
  • Navigazione interna in modalità SPA, con routing gestito sul client
  • Eventuali chiamate API per aggiornare o arricchire i dati in fase client

47 of 67

ng add @angular/ssr

48 of 67

/details/6526cb4e57e3ec956179e70f

/details/6526b9bb57e3ec956179e6ee

/details/6526c07057e3ec956179e701

/details/6527d9e257e3ec956179e739

/details/651fdae9bd3ab9d0545629e7

static-routes.txt

49 of 67

live demo score lighthouse

LIVE DEMO

TODO

50 of 67

I principali vantaggi delle static site generated app

  • 🚀 Performance top (HTML già pronto, servito come un file statico)

51 of 67

I principali vantaggi delle static site generated app

  • 🚀 Performance top (HTML già pronto, servito come un file statico)
  • 🔐 Sicurezza maggiore (meno logica lato server esposta)

52 of 67

I principali vantaggi delle static site generated app

  • 🚀 Performance top (HTML già pronto, servito come un file statico)
  • 🔐 Sicurezza maggiore (meno logica lato server esposta)
  • 💰 Costi di hosting più bassi (puoi usare CDN, niente server)

53 of 67

I principali vantaggi delle static site generated app

  • 🚀 Performance top (HTML già pronto, servito come un file statico)
  • 🔐 Sicurezza maggiore (meno logica lato server esposta)
  • 💰 Costi di hosting più bassi (puoi usare CDN, niente server)
  • ⚙️ Scalabilità altissima (serve solo file statici, quindi regge tanti utenti)

54 of 67

I principali vantaggi delle static site generated app

  • 🚀 Performance top (HTML già pronto, servito come un file statico)
  • 🔐 Sicurezza maggiore (meno logica lato server esposta)
  • 💰 Costi di hosting più bassi (puoi usare CDN, niente server)
  • ⚙️ Scalabilità altissima (serve solo file statici, quindi regge tanti utenti)
  • 🔍 SEO friendly (contenuto già presente al momento del caricamento)

55 of 67

56 of 67

Episodio I

L'evento fantasma

57 of 67

event replay

TODO

58 of 67

Episodio II�L'attacco dei rendering ibridi

59 of 67

hybrid rendering

TODO

60 of 67

Episodio III

La vendetta delle deferrable views

61 of 67

deferrable views

TODO

62 of 67

Written and Directed by�DAVIDE PASSAFARO

63 of 67

Davide Passafaro�Senior Frontend Engineer, awork

Davide Passafaro

  • Senior Frontend Engineer @ �
  • Google Developer Expert in Angular�
  • GDG Roma Città Organizer

  • Codemotion Contributor - Ancora Livello 1 ...

Let’s get in touch!

64 of 67

Don't forget to rate the talk!

65 of 67

Thanks!

66 of 67

Episode I – The Phantom Hydration

Episode II – Attack of the Hybrid Rendering �Episode III – Revenge of the Islands

Time skip - Other frameworks rule the web galaxy Episode IV – A New Framework

Episode V – The Server Strikes Back

Episode VI – Return of the Static Site

67 of 67

Nonostante l’adozione massiccia del CSR,

le prestazioni sono minacciate da bundle sempre più grandi,

e i crawler delle ricerche hanno stanato

le SPA dalle loro basi nascoste nel DOM.

Dopo essere sfuggiti alla temibile flotta

delle metriche Web Vitals,

un gruppo di sviluppatori guidati da Angular

ha trovato rifugio sul freddo e remoto pianeta Universal.

Ma il malvagio Lord LCP Fener,

ossessionato dall’idea di trovare il Time To Interactive,

ha inviato migliaia di sonde lighthouse

fino ai confini più remoti del web...