2011-08-17 11 views
9

Estoy haciendo la debida diligencia en la red troncal de una aplicación de una sola página y me pregunto si es posible volver a utilizar las mismas vistas/rutas del cliente en el lado del servidor, de modo que cuando google visita una URL pushstate, o se accede directamente a ella, el servidor puede generar exactamente el mismo HTML que sería generado por la red troncal en el cliente.Reutilización de vistas/rutas de la red troncal en el servidor cuando se utiliza Backbone.js pushstate para seo/marcadores

Sería un dolor tener que mantener dos conjuntos separados de vistas/rutas, una en el cliente y otra en el servidor. He visto el proyecto backnode en github; sin embargo, esto parece pasar por alto un poco y terminas teniendo que escribir el mismo enrutador backbone dos veces.

¿Preguntándome cómo las personas generalmente manejan el caso cuando usan URL de empuje en la red troncal y necesitan servir la misma vista desde el servidor? ¿Las personas están duplicando el código o hay una forma mejor?

Respuesta

5

no he probado esto todavía, pero estas ideas usando Node.js y la columna vertebral pueden ayudar:

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

Básicamente la única manera de hacerlo así que no estás escribiendo la misma Lo que dos veces es tener tanto el servidor node.js como el cliente frontend comparten el mismo código de enrutamiento/modelo. Si está utilizando algo más del lado del servidor (como Ruby), debería colocar node.js frente a su servidor de aplicaciones. A continuación, establezca el proxy node.js para nuevos clientes (push state y client js) y haga que el trabajo de renderizado funcione para clientes antiguos/bot.

La otra opción es hacer lo que hace jQuery Mobile, que es el método Hijax. La idea de hacer toneladas de páginas HTML5 (tendrá que mirar su enrutamiento para ver).

está completo y si usted debe ser consciente de cómo se arrastra Google AJAX: http://code.google.com/web/ajaxcrawling/docs/getting-started.html

+3

Acabo de encontrar http://www.idiotz.nl/2011/08/28/backbone-everywhere/. Creo que esto podría ser justo lo que estoy buscando, ya que tiene la columna vertebral trabajando en el lado del servidor para que todas las vistas se vuelvan del lado del servidor y se escupieran al cliente, desde allí el cliente se hace cargo, lo que significa que el problema seo está resuelto. – cjroebuck

+0

Sí, hay tantos frameworks nodejs ahora. Publiqué sobre esto (ver mi perfil) y todavía no estoy seguro, así que he estado jugando con express + backbone.js + persistence. –

Cuestiones relacionadas