2012-03-24 15 views
6

Dos buenos ejemplos serían google y facebook.Ventajas/Desventajas para sitios web generados con Javascript

Últimamente he reflexionado sobre la motivación para este enfoque. Mi mejor opción es que separa casi por completo la lógica entre el lenguaje de fondo y el marcado. Crear una matriz para enviar en formato JSON parece una forma ordenada de mantener el código, pero ¿qué otros elementos me falta aquí?

¿Cuáles son las ventajas/desventajas de este enfoque, y por qué lo están haciendo esas empresas de gran escala?

+1

Creo que esto cabría mejor en [programadores.se] – zzzzBov

Respuesta

2

La principal desventaja es que tiene un poco de dolor con la indexación de contenido de su sitio.

Para Google puede resolver el problema en algún lugar usando el esquema de rastreo. Google admite el rastreo que le permite indexar dinámicamente (sin recargar la página) el contenido generado de su página.

Para hacer esto, sus enlaces virtuales deben ser direcciones como: http://yoursite.com/#!/register/. En este caso, Google solicita al http://yoursite/register/ que indexe el contenido de la dirección.

Al hacer clic en el enlace virtual no hay recarga de página. Usted puede proporcionar mediante el uso de onclick:

<a href='http://yoursite.com/#!/register/' onclick='showRegister()'>Register</a> 

ventaja virtual es que el contenido de una página cambiada sin tener que recargar de la página. En mi práctica, no uso la generación de Javascript para hacer esto porque construyo mi interfaz en posiciones fijas. Cuando el usuario vuelve a cargar la página no nota nada porque los elementos de la interfaz aparecen en los lugares esperados.

Por lo tanto, mi opinión de que el uso de la generación de páginas dinámicas es un gran dolor. Creo que Google no lo hizo para separar el marcado y el backend (no es un problema real, puedes usar una estructura compleja de backend-frontend para hacer eso), sino para usar las ventajas de una representación conveniente y agradable para los usuarios.

1

Ventajas

  • Ver estado se mantiene en el cliente (eliminación de la carga del servidor)
  • actualizaciones parciales de páginas
  • Server no necesita saber acerca de HTML que conduce a una arquitectura orientada a servicios

Desventajas

  • marcadores (estado en la URL) es más difícil de implementar
  • Por lo que es investigable es todavía un trabajo en progreso
  • Necesita un organismo independiente para apoyar a los usuarios no-JS
0

no lo hago 100% entiendo su pregunta, pero haré mi mejor esfuerzo aquí ...

Tanto Google como Facebook usan JavaScript en todos sus sitios web y productos. Cada sitio web importante en la web lo usa.

JavaScript es la tecnología utilizada para modificar el comportamiento de sitios web.
HTML => define estructura y los elementos

CSS => styling los elementos

lenguajes de scripting => generar dinámicamente elementos y llenándolos con datos

JavaScript => modifica todo lo anterior mediante la interacción con el DOM, respondiendo a eventos y elementos de estilo sobre la marcha

Este es el 'enfoque' como lo llamas a todos los sitios web en la web de hoy. No hay alternativas a JavaScript/HTML/CSS. Puede cambiar la base de datos o el lenguaje de scripting utilizado, pero JavaScript/HTML/CSS es una constante.

+0

Ha .. sí, soy un desarrollador web. Mis preguntas son las ventajas/desventajas de este enfoque para aplicaciones web a gran escala. A diferencia de tener php generar la salida a través de una arquitectura de estilo MVC. Este es un enfoque más estándar, así que me pregunto por qué facebook/google elige este enfoque muy javascript. – grep

+0

Bueno, estoy totalmente adivinando aquí, pero supongo que de hecho están usando una arquitectura MVC junto con muchos JavaScript. En realidad, backbone.js, un framework MVC para su javascript, se está volviendo muy popular, así que muchos sitios tienen dos frameworks MVC en funcionamiento. Pero no importa cómo se ve tu backend, aún necesitas javascript si quieres que algo "rápido" en la página de la aplicación como lo que sucede con la interfaz de usuario sea como AJAX. Ninguna tecnología del lado del servidor puede reemplazar eso. Necesitas tecnología del lado del cliente para obtener toda esa hermosa interfaz de usuario, y eso sería javascript. – JLH

+0

Me imagino que este enfoque rompe un poco el típico MVC. Quiero decir, prácticamente elimina la necesidad de una vista. Solo JSON. – grep

0

Considere un ejemplo de un simple validación de formularios ...

cliente envía una petición a un servidor ... el servidor ejecutará el código del lado del servidor que contiene la lógica de validación y en una respuesta ... El servidor envíe el resultado al cliente ...

si el cliente tiene la capacidad de ejecutar/procesar (que se puede ejecutar en el lado del cliente ...) la forma ... (realizar la validación) .. el cliente no necesitará enviar solicitud al servidor ... y esperar a que el servidor responda a esa solicitud ...

+0

Necesita validar en el servidor, por lo que este no es el mejor ejemplo –

0

sugiero que eche un vistazo a la mejor práctica de Google Page Speed ​​http://code.google.com/intl/it-IT/speed/page-speed/ para ver cuáles son los factores que hacen una buena página ... generar una página con javascript parece genial debido a la separación de la interfaz de usuario y la lógica, pero es un totalmente ineficiente en la práctica

Cuestiones relacionadas