18 votos

Estoy llegando al punto en que una aplicación donde tengo que empezar de almacenamiento en caché de las cosas, y me puse a pensar...

  1. En algunas partes de la aplicación, me hacen a las filas de la tabla (jqGrid, slickgrid, etc.) o de lujo div filas (como en el Nuevo Twitter) por el acaparamiento de puro JSON y se ejecuta a través de algo como Bigote, jquery.tmpl, etc.
  2. En otras partes de la aplicación, que acaba de procesar la información en HTML puro (del lado del servidor HAML plantillas), y si no hay búsqueda/paginación, acabo de ir a una nueva URL y cargar una nueva página HTML.

Ahora el problema está en la caché y la facilidad de mantenimiento.

Por un lado estoy pensando, si todo ha sido construido utilizando Javascript, HTML, Plantillas, entonces mi aplicación serviría sólo un diseño HTML/shell, y un montón de JSON. Si usted mira en el Facebook y Twitter de código HTML, que es básicamente lo que están haciendo (95% json/javascript, 5% html). De este modo, sería por lo que mi aplicación solo es necesario caché JSON (páginas, acciones, y/o registros). Lo que significa que hay que pulsar la caché no importa si fueron algunos remoto desarrollador de la api de acceso a una api JSON, o el estrecho web app. Es decir, no necesito 2 cachés, uno para el JSON, uno para el código HTML. Que parece que había cortado mi memoria caché de la tienda de abajo de la mitad, y agilizar un poco las cosas.

Por otro lado, estoy pensando, por lo que he visto/experiencia, la generación de HTML estático en el lado del servidor, almacenamiento en caché y que, parece ser mucho mejor rendimiento sabio cross-browser, se puede obtener la gráfica al instante y no tener que esperar a que una fracción de segundo para javascript para hacerlo. StackOverflow parece hacer todo lo que en formato HTML, por lo que hace Google, y te puedo decir... todo lo que aparece a la vez. Observe cómo a pesar de que en twitter.comla página está en blanco para .5-1 segundos, y la página en trozos en: javascript para representar el json. El inconveniente con esto es que, para cualquier cosa dinámico (como un sinfín de desplazamiento, o rejillas), tendría que crear plantillas javascript de todos modos... así que ahora tengo en el lado del servidor HAML plantillas javascript del lado cliente plantillas y mucho más caché.

Mi pregunta es, ¿hay algún consenso sobre cómo abordar esto? ¿Cuáles son los beneficios y los inconvenientes de su experiencia de la mezcla de los dos frente a acudir al 100% con uno sobre el otro?

Actualización:

Algunas razones por las que el factor de por qué todavía no he tomado la decisión de ir con el 100% de javascript plantillas son:

  • Rendimiento. No he probado formalmente, pero por lo que he visto, raw html que se muestra más rápido y de forma más fluida de javascript-html generado cross-browser. Además, no estoy seguro de cómo los dispositivos móviles manejar html dinámico en cuanto al rendimiento.
  • Pruebas. Tengo un montón de pruebas de integración que funcionan bien con HTML estático, por lo que el cambio a javascript-sólo requeriría 1) centra más puro javascript pruebas (jazmín), y 2) la integración de javascript en capybara pruebas de integración. Esto es sólo una cuestión de tiempo y trabajo, pero es probablemente significativo.
  • Mantenimiento. Deshacerse de HAML. Me encanta HAML, es tan fácil escribir, imprime muy HTML..., código limpio, hace que el mantenimiento sea fácil. Va con javascript, no hay nada tan concisa.
  • SEO. Sé que google controla el ajax /#!/path, pero no he comprendido cómo esto afectará a otros motores de búsqueda y cómo los navegadores más antiguos de manejar. Parece que necesitaría un importante programa de instalación.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: