
Chi programma il web lato server dalle origini, sa che è necessario scaricare ogni pagina web (dal server al browser) per poterla utilizzare. Ogni eventuale aggiornamento ai contenuti mostrati sarebbe possibile solo al prezzo di ricaricare la pagina, il tutto con grande fastidio per l’utente e accurato lavoro di coordinamento dello sviluppatore. La tecnologia Ajax ha cambiato lo scenario permettendo al codice Javascript di aggiornare porzioni della pagina web in background senza richiederne un ricaricamento integrale da server. L’estremizzazione di questa pratica, con il favore delle librerie che l’hanno reso sempre più agevole (pensiamo a jQuery e tutti i suoi simili e derivati), ha portato a delle applicazioni web che non hanno bisogno di ricaricarsi mai: le Single Page Application, spesso dette SPA. In pratica, la pagina viene scaricata nel browser non appena invocata e lì continua a dialogare con servizi Web o a funzionare autonomamente, godendo dei benefici del web con la comodità di un’applicazione desktop.
Le SPA sono ormai la struttura più comune per le web app e la loro natura richiede un’architettura interna articolata, propria più di un’applicazione completa che di una semplice interfaccia per interagire con qualche altro servizio. Esistono diversi framework in grado di offrire tutto il necessario a queste applicazioni: pensiamo ad AngularJS, il più completo in assoluto, che ha ufficializzato il termine Single Page Application nel mondo ma anche ad altri più piccoli però sempre ricchi di funzionalità come Ember.js e Knockout.js fino ad uno dei più giovani sebbene dotato di mentalità nuova come Meteor.js. La nascita di questi framework ha soddisfatto le necessità dei progettisti consci del fatto che non basta Ajax per creare delle pagine web fluide in locale come applicazioni desktop: servono moltissimi strumenti di elaborazione, architettura interna completa con lo storico pattern MVC o la sua derivazione più nuova MVVM (Model View ViewModel) nonchè altri aspetti – anch’essi molto importanti – come il data-binding (bidirezionale possibilmente) per permettere il vicendevole aggiornamento tra interfaccia e dati ed il monitoraggio continuo delle evoluzioni del Model.
Le SPA stanno sostituendo velocemente persino le applicazioni desktop offrendo molti vantaggi sia in termini di usabilità che di manutenibilità sebbene conservino le tipiche problematiche del web come l’interazione da svolgere comunque attraverso la Rete e la divisione del codice tra server e client che spesso – ma non sempre – è scritto in linguaggi differenti: Javascript per lavorare nel browser e uno tra PHP, Java, C# e altri per il backend web.
Su questo sito, seguiamo da tempo la tematica con interesse svolgendo approfondimenti sui framework esistenti più in voga. Sicuramente continueremo a farlo ma voi, dal canto vostro, non esitate a suggerirci idee o – perchè no? – muoverci qualche obiezione lasciando un commento.
Alla prossima!
One Response to “Single Page Application: cosa sono, come funzionano e quali framework utilizzare”
25 Luglio 2019
NicoNon ho obiezioni da muovere, ma sono rimasto molto colpito dalla chiarezza presente in questo articolo che guida passo passo il lettore nella comprensione dei contenuti. Ringrazio l’autore