Le applicazioni Web sono inconsapevolmente, in sostituzione delle vecchie applicazioni desktop. Sono più comodi da usare, sono facili da aggiornare e non sono associati a un dispositivo. E anche se gli utenti si stanno spostando delicatamente dalle applicazioni Web basate su browser a quelle mobili, la domanda di app complesse e raffinate è già enorme ed è ancora in crescita., Se stai pensando di creare la tua applicazione, probabilmente hai sentito che ci sono due modelli di progettazione principali per le app Web: applicazione multipagina (MPA) e applicazione a pagina singola (SPA). E, naturalmente, entrambi i modelli hanno i loro pro e contro.

Prima di iniziare a trasformare la tua idea nella vera applicazione, devi rispondere a una serie di domande importanti. Per decidere quale modello di app è meglio per te, dovresti seguire l’approccio content-first, che sottolinea l’importanza di mettere il contenuto dell’applicazione prima di tutto., Questo perché il contenuto è il motivo principale per cui gli utenti useranno o non useranno l’applicazione. E questo ci porta alle domande più importanti: quali contenuti vuoi presentare e quali contenuti i tuoi utenti si preoccuperanno di più.

Ci sono molti pro e contro di SPA così come di MPA. Spero che le righe seguenti chiariranno le differenze tra questi due modelli di progettazione e ti avvicineranno al punto in cui saprai che tipo di applicazione si adatta di più alla tua idea. E rendere la vostra idea di propria applicazione si avvera.,

Un’applicazione a pagina singola è un’app che funziona all’interno di un browser e non richiede il ricaricamento della pagina durante l’uso. Si sta utilizzando questo tipo di applicazioni ogni giorno. Questi sono, per esempio: Gmail, Google Maps, Facebook o GitHub.
Le SPA servono a servire una UX eccezionale cercando di imitare un ambiente “naturale” nel browser: nessuna ricarica di pagina, nessun tempo di attesa aggiuntivo. È solo una pagina web che visiti che carica tutti gli altri contenuti usando JavaScript, da cui dipendono fortemente.,

SPA richiede il markup e i dati in modo indipendente e rende le pagine direttamente nel browser. Possiamo farlo grazie ai framework JavaScript avanzati come AngularJS, Ember.js, Meteora.js, Knockout.js .
I siti a pagina singola aiutano a mantenere l’utente in uno spazio Web confortevole in cui il contenuto viene presentato all’utente in modo semplice, facile e praticabile.

Pro dell’applicazione a pagina singola:

  • SPA è veloce, poiché la maggior parte delle risorse (HTML+CSS+script) viene caricata solo una volta per tutta la durata dell’applicazione. Solo i dati vengono trasmessi avanti e indietro.,
  • Lo sviluppo è semplificato e semplificato. Non è necessario scrivere codice per rendere le pagine sul server. È molto più facile iniziare perché di solito puoi dare il via allo sviluppo da un file file://URI, senza utilizzare alcun server.
  • Le SPA sono facili da eseguire il debug con Chrome, in quanto è possibile monitorare le operazioni di rete, indagare sugli elementi della pagina e sui dati ad esso associati.
  • È più facile creare un’applicazione mobile perché lo sviluppatore può riutilizzare lo stesso codice backend per l’applicazione Web e l’applicazione mobile nativa.
  • SPA può memorizzare nella cache qualsiasi memoria locale in modo efficace., Un’applicazione invia una sola richiesta, memorizza tutti i dati, quindi può utilizzare questi dati e funziona anche offline.

Contro dell’applicazione a pagina singola:

  • È molto complicato e non è un compito facile rendere l’ottimizzazione SEO di un’applicazione a pagina singola. Il suo contenuto è caricato da AJAX (JavaScript asincrono e XML) — un metodo di scambio di dati e aggiornamento nell’applicazione senza aggiornare la pagina.
    AGGIORNAMENTO 27.09.2017: Nel suo commento, Iris Shaffer ha correttamente sottolineato che può essere fatto anche sul lato server. In effetti, oggi è più facile di prima.,
  • È lento da scaricare perché i framework client pesanti devono essere caricati sul client.
  • Richiede JavaScript per essere presente e abilitato. Se un utente disabilita JavaScript nel suo browser, non sarà possibile presentare l’applicazione e le sue azioni in modo corretto.
    AGGIORNAMENTO 27.09.2017: Nel suo commento, Iris Shaffer ha notato che con il rendering isomorfo / rendering lato server, è possibile eseguire il rendering della pagina sul server già. Quando il rendering iniziale è sul server e può essere memorizzato nella cache, disabilitare JS non sarebbe un problema per ottenere una pagina renderizzata., Teoricamente, è vero. Ovviamente è possibile eseguire il rendering sul lato server. Ma la mancanza di JS può essere una preoccupazione per altre funzionalità. Molte cose possono essere fatte in HTML& CSS ma dalla mia esperienza sarebbe un inferno farlo in questo modo invece di usare JavaScript.
  • Rispetto all’applicazione” tradizionale”, la SPA è meno sicura. A causa di Cross-Site Scripting (XSS), consente agli aggressori di iniettare script lato client in applicazioni web da altri utenti.,
  • Perdita di memoria in JavaScript può anche causare potente sistema di rallentare
  • In questo modello, pulsanti avanti e indietro diventano disfunzionali.
    AGGIORNAMENTO 27.09.2017: Al giorno d’oggi, non è più un problema.

Applicazione multipagina

Le applicazioni multipagina funzionano in modo “tradizionale”. Ogni cambiamento ad es. visualizzare i dati o inviare i dati alle richieste del server rendendo una nuova pagina dal server nel browser. Queste applicazioni sono grandi, più grandi di centri benessere perché hanno bisogno di essere. A causa della quantità di contenuti, queste applicazioni hanno molti livelli di interfaccia utente., Fortunatamente, non è più un problema. Grazie ad AJAX, non dobbiamo preoccuparci che le applicazioni grandi e complesse debbano trasferire molti dati tra server e browser. Questa soluzione migliora e consente di aggiornare solo parti particolari dell’applicazione. D’altra parte, aggiunge più complessità ed è più difficile da sviluppare rispetto a un’applicazione a pagina singola.

Pro dell’applicazione a più pagine:

  • È l’approccio perfetto per gli utenti che hanno bisogno di una mappa visiva di dove andare nell’applicazione., Solido, pochi livello di navigazione del menu è una parte essenziale della tradizionale applicazione multi-pagina.
  • Molto buono e facile per una corretta gestione SEO. Dà migliori possibilità di rango per diverse parole chiave in quanto un’applicazione può essere ottimizzata per una parola chiave per pagina.

Contro dell’applicazione a più pagine:

  • Non è possibile utilizzare lo stesso backend con le applicazioni mobili.
    AGGIORNAMENTO 27.09.2017: Allora, quando stavo scrivendo questo articolo, non avevo molta esperienza con il backend e con le app mobili., È ovvio per me ora che puoi usare lo stesso backend per entrambi. E vorrei ringraziare tutti i lettori che lo hanno sottolineato.
  • Lo sviluppo di frontend e backend sono strettamente accoppiati.
  • Lo sviluppo diventa piuttosto complesso. Lo sviluppatore deve utilizzare framework per lato client e server. Ciò si traduce in tempi più lunghi di sviluppo dell’applicazione.

SPA o MPA?

Prima di distribuire un’applicazione Web, è necessario considerare l’obiettivo di esso., Se sai che hai bisogno di più categorie (perché, ad esempio, gestisci un negozio online o pubblichi molti altri contenuti), usa un sito multipagina. Se sei sicuro che il tuo sito sia appropriato per una pura esperienza a pagina singola, fallo. E se ti piace SPA, ma può appena adattarsi tutto in una singola pagina, prendere in considerazione il sito ibrido, invece. Questo è un altro modo che non ho menzionato prima. Un’applicazione ibrida prende ciò che è il migliore in entrambi gli approcci e cerca di minimizzare gli svantaggi., È, infatti, un’applicazione a pagina singola che utilizza le ancore URL come pagine sintetiche che consentono più funzionalità di navigazione e preferenze del browser di compilazione. Ma questo è l’argomento per un altro articolo.

Forse in futuro, tutti useranno il modello di applicazione a pagina singola (inclusa un’app ibrida), in quanto sembra portare molti vantaggi. Molte app sul mercato stanno migrando verso questo modello. Tuttavia, poiché alcuni progetti semplicemente non possono adattarsi alla SPA, il modello MPA è ancora vivido.

Originariamente pubblicato da Paweł Skólski a neoteric.eu/blog il 1 dicembre 2016.