2012-04-09 12 views
22

He estado mirando varios RIA y he notado que algunas personas usan o solicitan JavaScript Routing. Solo hojeándolo 'JavaScript Routing' parece una forma de recorrer su sitio ... pero puedo usar un enlace simple para eso. Lo que significa que absolutamente no lo entiendo.¿Qué te compra JavaScript Routing?

Entonces ...

  • ¿Qué enrutamiento que proporciona un ancla que regular o link no?
  • ¿Es apropiado solo en ciertos entornos? (es decir, ASP.NET o HTML directo)
  • ¿Para qué sirve?
  • ¿Qué propósito impulsa su existencia?
+0

Excelentemente redactado. – orbfish

Respuesta

47

El enrutamiento es una forma de organizar y administrar estados de aplicación. Un marco de enrutamiento en JavaScript lo ayuda a cambiar el estado de la aplicación, quizás al pasar de una sección del panel de administración a otra, mientras mantiene la persistencia de la aplicación .

Si desea navegar desde un estado de aplicación, p. /admin/users, a otro, p. /admin/orders, podría usar un enlace normal como sugiere. Pero luego hará que el navegador navegue de una página HTML a otra. Esta es, obviamente, la forma normal en que uno navega por la Web. Pero en una aplicación de JavaScript, ¡esto es bastante ineficiente!

Si está ejecutando una aplicación compleja en el navegador en JavaScript, entonces esa aplicación necesita mucho trabajo cuando se está iniciando. Registra los controladores de eventos, carga y ejecuta un montón de JavaScript, y a veces procesa toda la interfaz de la página de forma dinámica (en el caso de ExtJS y algunas otras bibliotecas). Eso es mucho trabajo adicional para que el navegador configure una aplicación de JavaScript en /admin/orders que tiene mucho en común con la de /admin/users. Una forma más eficiente es que el enlace active un evento que monitorea la aplicación y que la aplicación responda cambiando el estado de la aplicación, tal vez eliminando u ocultando la vista de los usuarios y reemplazándola con una vista de pedidos. El enrutamiento es una forma de representar estas diferentes interfaces, utilizando un token, generalmente un fragmento de URL como /admin/users, para hacer un seguimiento de dónde está el usuario en su interfaz.

Esto permite a la aplicación mantener el modelo de objeto dinámico que ya tiene tiempo de grabación y la memoria utilizada para crear. Hace que la interfaz de usuario responda más rápidamente y, si está utilizando la gestión de historial de URL a través de un hashtag o pushState, le permite al usuario navegar por su aplicación usando los botones hacia atrás y hacia adelante de su navegador, sin volver a cargar todos los activos en el página cada vez y borrando su estado de aplicación. La administración de URL también permite enlaces profundos a alguna página de la aplicación: al cargar, el enrutador de la aplicación examina la cadena de ruta que recibe, la combina y carga la interfaz que ha especificado en su tabla de enrutamiento.

El enrutamiento no es requiere para administrar la persistencia, pero es una buena forma de organizar sus estados persistentes. A menudo, un sistema de enrutamiento va de la mano con la gestión de historial de URL, como Davis.js. Pero también hay bibliotecas de enrutamiento que no entran en conflicto con el URI, que mantienen un estado tokenizado abstracto que puede usar o mostrar como mejor le parezca, como Crossroads.js.

+0

¡GUAU! ¡Lo entiendo totalmente ahora! –

+0

Entonces, obviamente, esto no se usaría en una aplicación ASP.NET MVC o SharePoint ... ¿verdad? –

+1

SharePoint, probablemente no. SharePoint administra su propio marcado, por lo que no estaría haciendo este tipo de trabajo centrado en frontend. ASP.NET MVC podría ser utilizado como la tecnología del lado del servidor para un RIA con JavaScript, por lo que la respuesta es "tal vez". La pregunta clave es si está ejecutando una aplicación de JavaScript de una sola página. – zetlen

Cuestiones relacionadas