2011-08-17 16 views
9

Sto facendo un po 'di due diligence sul backbone per un'applicazione singola pagina e mi chiedo se sia possibile riutilizzare le stesse viste/percorsi dal lato client sul lato server, in modo che quando google visita un URL pushstate o vi si acceda direttamente, il server possa generare esattamente lo stesso codice HTML che verrebbe generato dal backbone nel client.Riutilizzo delle viste/rotte del backbone sul server quando si utilizza Backbone.js pushstate per seo/bookmarking

Sarebbe un problema dover mantenere due insiemi di viste/percorsi separati, uno sul client e uno sul server. Ho visto il progetto backnode su github, tuttavia questo sembra perdere un po 'il punto e si finisce per dover scrivere lo stesso router backbone due volte.

Basta chiedersi come le persone gestiscono generalmente il caso quando si utilizzano gli URL pushstate in backbone e che devono servire la stessa vista dal server? Le persone duplicano il codice o c'è un modo migliore?

risposta

5

non ho ancora provato questo, ma queste idee utilizzando node.js e la spina dorsale potrebbe aiutare:

http://andyet.net/blog/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/

http://bennolan.com/2010/08/13/pushstate-and-nodejs.html

In sostanza l'unico modo per fare in modo vostro non scrivere lo stesso La cosa due volte è avere il tuo server node.js e il client frontend condividono lo stesso codice di routing/modello. Se stai usando qualcos'altro sul lato server (come Ruby) dovresti posizionare node.js davanti al tuo server delle applicazioni. Quindi creare il proxy node.js per i nuovi client (stato push e client js) e rendere effettivamente il lavoro per i client vecchi/bot.

L'altra opzione sta facendo ciò che fa jQuery Mobile, che è il metodo Hijax. L'idea di fare tonnellate di pagine HTML5 (dovrai vedere il suo routing per vedere).

E per completezza si dovrebbe essere consapevoli di come Google esegue la scansione AJAX: http://code.google.com/web/ajaxcrawling/docs/getting-started.html

+3

Ho appena trovato http://www.idiotz.nl/2011/08/28/backbone-everywhere/. Penso che questo potrebbe essere proprio quello che sto cercando, dato che ha il backbone funzionante sul lato server in modo che tutte le viste siano rese lato server e sputate al client, da lì il client prende il sopravvento, il che significa che il problema di seo è risolto. – cjroebuck

+0

Sì, ci sono così tanti framework nodejs ora. Ho bloggato su questo (vedi il mio profilo) e ancora non sono sicuro di aver giocato con express + backbone.js + persistence. –

Problemi correlati