Lanciato alcuni giorni fa Astro 4.12 introduce alcune interessanti novità tra cui le Server Island. Queste ultime estendono il concetto di isole, architettura front-end che caratterizza il noto framework JavaScript per lo sviluppo di Web application. Questo rilascio presenta anche altre novità, come per esempio first
e last
per la paginazione dei dati e la funzione inferRemoteSize()
che permette di accedere alle dimensioni di un'immagine in remoto, le Server Island meritano però un'analisi più approfondita.
Cosa sono le Server Island di Astro
In Astro le isole permettono di rimuove automaticamente tutto il codice JavaScript che non è necessario per una determinata esecuzione. Esse funzionano grazie ad una tecnica denominata idratazione parziale (o idratazione selettiva) e sono rappresentate da componenti interattivi dell'interfaccia utente. Un'isola è quindi una sorta di widget interattivo grazie al quale renderizzare pagine HTML sul server senza coinvolgere un'intera applicazione.
Con le Server Island questo pattern architettonico viene esteso al server. Con esse si possono combinare le performance dell'HTML statico e i componenti dinamici generati lato server.
Come funzionano le Server Island
Gli sviluppatori di Astro le hanno implementate partendo dagli elementi che solitamente compongono una pagina: contenuti statici che non sono suscettibili a cambiamenti, contenuti forniti da un database che vengono modificati di rado e contenuti personalizzati per uso individuale.
Una struttura come questa prevede che l'utilizzatore debba scegliere una modalità di caching per tutti questi tipi di contenuti. Grazie alle Server Island, invece, questo problema viene superato in quanto gli utenti, che siano loggati o meno, vedranno tutte le componenti più rilevanti di una pagina, immediatamente.
Ciascuna isola verrà caricata indipendentemente dalle altre, quindi se una di esse dovesse manifestare una latenza quelle restanti non verranno influenzate. I contenuti di fallback, inoltre, risulteranno visibili soltanto per poco tempo prima del caricamento dinamico delle isole.
Le Server Island sono per il momento ancora in fase sperimentale, è comunque possibile utilizzarle in fase di sviluppo per valutarne l'impatto sulle performance.