Modellare con Javascript o Django?


1 Answers

Non penso che un'architettura ibrida di client e server basata su modelli sia pessima. Finché si codifica un modello solo in uno degli ambienti.

Ogni volta che si genera un lato server di pagine, viene consumata una quantità di tempo di elaborazione e una certa larghezza di banda della rete. Questo è quello che si paga se si utilizzano server ospitati.
Mentre il browser dell'utente è in attesa di inattività su un computer generalmente inattivo per la risposta.

Se si invia il modello sul client (HTML + JS), possono essere memorizzati nella cache, per la sessione o anche giorni, se l'utente non li elimina.
Ciò riduce il traffico di rete per fornire lo stesso contenuto varie volte. Poiché i dati sono generalmente più piccoli del loro HTML di rendering equivalente.

Come tu punti, i motori Javascript di oggi sono molto veloci, così come il computer che lo gestisce. Ogni volta che si invia il lavoro di rendering al client, si risparmia tempo di elaborazione per il server e si velocizzano i dati.

Siamo all'estremo opposto, poiché eseguiamo tutto sul client ed è per questo che abbiamo creato PURE per un rendering client ultra-veloce. La nostra app sembra molto veloce come risultato di questo decentramento.

Question

Sto costruendo un'applicazione web Django che ha un sacco di codice HTML generato al volo da richieste di Ajax. In questo momento uso il linguaggio dei template di Django per creare html e poi passare questo nuovo HTML come una stringa in un oggetto JSON che viene poi iniettato nella pagina con jQuery.

Funziona abbastanza bene, ma con Javascript che è così veloce nei browser moderni e con così tante librerie di template javascript che sono state fatte mi chiedo se dovrei spingere tutto al clientide.

Quindi la mia domanda è: dato che la mia "pagina" media con tutte le richieste da e verso di esso deve compilare circa ~ 300 template (ciascuno di circa 15 o più righe con circa 5 sostituzioni) in HTML durante la sua vita è significativo vantaggio in termini di prestazioni a fare il template nel browser?

Inoltre, qualcuno può consigliare una libreria di template Javascript "veloce"? Ho sentito cose positive su underscore.js, mustache.js e template jQuery.




Potrebbe essere possibile creare modelli con doppio scopo - a quelli che potrebbero essere resi in segnaposti per la sostituzione con js e allo stesso tempo potrebbero essere resi normalmente per l'output del server. Solo alcuni modelli dovranno avere un duplice scopo come questo: i frammenti che devono essere sostituiti dal js.

Sono d'accordo con Ignacio, è molto meglio conservare solo una copia di ogni modello, in modo da non doverne scrivere una separata per il javascript, tuttavia c'è sicuramente un margine di miglioramento dall'approccio che ho menzionato sopra .

Idealmente si potrebbe desiderare di avere modelli compilati in robusto codice di funzione javascript e stringa semplice per l'output dal server.

Modelli di chiusura chiamati Soy, risolvono il problema in modo appropriato ma non funzionano (forse ancora) con Python, ma funzionano con Java e Javascript. Speriamo che un giorno ci sarà il supporto per Python per questo.

Ma anche se ciò accade, il linguaggio dei template sarà probabilmente più limitato in quanto sarà difficile rendere le cose come .get_absolute_url() , i filtri, ecc funzionano sia in python che in javascript - tutto automaticamente.




Related