2015-04-15 9 views
8

Ho studiato la differenza tra app a singola pagina e app a più pagine e penso di avere una buona visione di come differiscono. L'app a pagina singola inizia caricando una singola pagina html, quindi non aggiorna mai completamente la pagina o sovrascrive l'originale, a meno che l'applicazione non venga aggiornata (aggiornamento del browser, ecc.) Ad esempio, il progetto seme angularJS: angular-seed ha un indice file .html. Questo file è la singola pagina, che il server invierà al front-end, dopodiché tutte le altre (possibili) pagine verranno inviate in modo asincrono sotto la cappa usando AJAX. Quindi, se crei l'app solo con il seme di angularjs, sarà sempre solo un'applicazione SPA, ho ragione?AngularJS: differenza tra app a pagina singola e pagine multiple e utilizzo nella pratica?

Come in pratica dovresti creare un'applicazione multipagina con angularjs? Non avresti bisogno di più applicazioni angularJS? Dovresti avere un instradamento separato per ciascuna di queste applicazioni angularJS? E perché uno vorrebbe fare un'applicazione multipagina per angularJS? Perché si può sempre usare il primo index.html come una shell, senza contenuto reale, e quindi avere pagine contenitore separate per pagine diverse. Si potrebbe dire che l'applicazione multipage angularJS sarebbe un'applicazione, che conterrebbe solo molte applicazioni SPA angularJS? In SPA, puoi utilizzare il pulsante di navigazione del browser, per tornare all'ultima visualizzazione?

risposta

1

Sì, l'idea di SPA e MPA è giusta.

Angular.js consente di creare SPA senza forzare. In un MPA, non parlerei di più applicazioni Angolari poiché avresti semplicemente diffuso i moduli Angular.js su più pagine HTML. Il flusso di pagina o la logica di routing si troveranno quindi nei controller Angular.js, in semplici collegamenti ipertestuali o nel back-end sul server.

Ci potrebbero essere dei motivi per non inserire un'intera applicazione in Angular.js. Forse la parte di autenticazione di un'applicazione Web potrebbe essere tenuta separatamente per alcune ragioni ...

In SPAs puoi sicuramente usare il pulsante Indietro del browser. Devi solo implementarlo in qualche modo. Twitter risolve questo problema codificando lo stato della sua applicazione web nell'URL: se stai usando Twitter, potresti aver notato i simboli (#!) Nella barra degli indirizzi.

+0

Ma non hai bisogno di ng-app in html per poter compilare il documento angularjs? Quindi non potresti avere moduli angular.js su altre pagine html, senza quelle pagine che includono anche il modulo ng-app? E se includono il modulo ng-app, allora sono considerati come un'applicazione separata? https://docs.angularjs.org/api/ng/directive/ngApp. Inoltre non capisco la parte di routing. Allora non ci sarebbe un normale percorso angolare? –

+1

Sì, è necessario inizializzare Angular.js in qualche modo per pagina - vedere anche https://docs.angularjs.org/guide/bootstrap - ma questo da solo non crea due applicazioni. –

+0

Quando si dice "applicazione" si sta parlando di applicazioni Angular.js, giusto? In tal caso, puoi condividere un'applicazione Angular.js su più pagine (dovresti trasferire i dati da una pagina all'altra in qualche modo ...). Inoltre, potresti avere più applicazioni Angular.js su una singola pagina. Oppure potresti avere un'applicazione web composta da una pagina con un'applicazione Angular.js e un'altra pagina HTML semplice ... –

Problemi correlati