Sto leggendo nella scelta del framework lato client corretto per segmentare/modularizzare il mio codice di frontend in Widget.Moduli di marionette di backbone come widget simili a Twitter Flight
Fondamentalmente quello che ho/voglio è:
- un sito web complesso con molteplici pagetypes, quindi nessuna applicazione di una sola pagina.
- tutte le pagine sono in grado di visualizzare una pagina completa SENZA l'uso di javascript. IOW: javascript è usato solo come arricchimento.
- Un sacco di pagine ha un modo molto dinamico in cui i widget possono essere visualizzati sullo schermo. Per superare la complessità a livello di server-side che ho modulare il mio codice in widget (composite), in cui ogni widget è responsabile per il proprio:
- lato server codice del controller
- lato server di template (utilizzando Hogan/baffi)
- endpoint di routing, se dovesse avere bisogno di essere chiamato dal client
- css strutturale (css converning la struttura del widget in contrasto con l'aspetto & feel)
- un lato server Regio n Manager in definitiva decide quali widget sono renderizzati e dove vengono visualizzati sullo schermo. Endresults è che RegionManager sputa l'intero html (generato dal server) come il composito del rendering di tutti i suoi widget.
Ora, alcuni di questi widget hanno una logica lato client e richiedono il rerendering sul client. Prendi una pagina di ricerca, ad esempio, che deve essere in grado di aggiornare tramite ajax. (Ho descritto questo processo, che utilizza i modelli DRY su client e server, here)
Quello che alla fine voglio è che, dato che utilizzo già il pattern composito sul server, estendilo in qualche modo al client in modo che un Widget (1 blocco logico particolare sullo schermo) contiene tutto il codice lato server menzionato, più tutto il codice lato client necessario.
Spero che abbia senso.
Marionette sarebbe adatta per essere utilizzata come struttura client side in questo scenario? Chiedo perché non sono sicuro al 100% se il concetto di un modulo marionette è quello che descrivo come un widget nello scenario sopra. (Menziono Twitter Flight nella mia domanda, dal momento che ritengo che sarebbe un errore, ma al momento è così nuovo che sono titubante ad accettarlo al momento_
Penso sostanzialmente a ciò che sto chiedendo è se qualcuno ha qualche esperienza facendo qualcosa in questo modo:
Twitter ha affermato di aver già utilizzato Flight nelle proprie applicazioni web, quindi mentre il suo open-sourcing è nuovo, non è di per sé nuovo di per sé. Se pensi che sia adatto a te, dovresti provarlo. Penso che si adatti al "Javascript è usato solo come arricchimento" più di Marionette. – Greg
Non ho esperienza con Flight, quindi non posso parlarne. 'Marionette' è probabilmente eccessivo per quello che stai cercando di fare, ma un' Backbone.View' può essere utile per la manipolazione del DOM. L'uso di un modulo 'Backbone.View' aiuta a organizzare il codice e ad estendere le manipolazioni del DOM a un elemento. – mnoble01