PANORAMICA

# Single Page Applications

Da Wikipedia:

Con Single-page application (in italiano: applicazione su singola pagina) o in sigla SPA si intende una applicazione web o un sito web che può essere usato o consultato su una singola pagina web con l'obiettivo di fornire una esperienza utente più fluida e simile alle applicazioni Desktop dei sistemi operativi tradizionali. In un'applicazione su singola pagina tutto il codice necessario (HTML, JavScript e CSS) è recuperato in un singolo caricamento della pagina o le risorse appropriate sono caricate dinamicamente e aggiunte alla pagina quando necessario, di solito in risposta ad azioni dell'utente. La pagina non si ricarica in nessun punto del processo, né lascia il controllo in un'altra pagina, sebbene moderne tecnologie web (come la API pushState() di HTML5 può fornire la percezione e la navigabilità in pagine logiche separate nell'applicazione). L'interazione con una applicazione a singola pagina spesso coinvolge una comunicazione dinamica con il web server.

Il termine ha cominciato ad essere usato a partire dal 2012 e Genropy può considerarsi un precursore di questa tecnologia dato che a partire dal 2006 sono stati consegnati ai clienti i primi applicativi realizzati con il framework e che anticipavano proprio questo approccio. Le applicazioni web tradizionali, infatti, prevedono che il server generi delle pagine HTML che invia al client e quest'ultimo si limita poi a presentarle all'utente fornendo un minimo di logica locale tramite Javascript.

Con Genropy invece la chiamata ad una pagina rende sempre la stessa pagina HTML che al suo interno costruisce una vera e propria applicazione in Javascript che dialoga con la sua controparte in Python sul server tramite RPC e Websocket. L'adozione di questo approccio (per il 2006 davvero inconsueto) ha consentito di sperimentare per molti anni questa tecnologia che ora è molto matura ed adatta ad essere usata per creare applicazioni in grado di garantire agli utenti una straordinaria velocità di uso in grado di non fare rimpiangere i classici applicativi desktop.

Per chi utilizza un'applicazione per tutto il giorno il risparmio di pochi decimi di secondo su ogni singola operazione può rappresentare un vantaggio competitivo anche importante. Se un utente di un sito pubblico e che usa un'applicazione per pochi minuti è disposto ad accettare un'interfaccia anche non perfetta, chi lavora tutto il giorno su un sistema professionale deve essere messo in grado di svolgere il proprio compito nel modo più completo e veloce possibile.

Questo si traduce anche nel disegno di una GUI standardizzata dove ogni elemento funzionale è sempre posizionato nello stesso punto e dove ogni dettaglio è studiato per risparmiare tempo e fatica. Questo è molto diverso dai siti pubblici dove invece si predilige spesso l'aspetto estetico anche a scapito della funzionalità.