JavaScript Routing为您带来了什么?

Pri*_*ERO 24 javascript asp.net url-routing

我一直在寻找各种RIA,并注意到一些人使用或请求JavaScript路由.只是浏览它'JavaScript Routing'看起来像是一种遍历你网站的方式......但我可以使用一个简单的链接.这意味着我绝对不会得到它.

所以...

  • 路由为您提供常规锚点或链接不是什么?
  • 它仅适用于某些环境吗?(即ASP.NET或直接HTML)
  • 它是为了什么?
  • 它的存在有什么目的?

zet*_*len 55

路由是一种组织和管理应用程序状态的方法.JavaScript中的路由框架可帮助您更改应用程序的状态 - 可能从一个管理面板部分移动到另一个部分 - 同时保持应用程序持久性.

如果您想从一个应用程序状态(例如/admin/users,另一个应用程序状态)导航,例如/admin/orders,您可以按照建议使用普通链接.但是,您将导致浏览器从一个HTML页面导航到另一个HTML页面.显然,这是在Web上导航的正常方式.但是在JavaScript应用程序中,这是非常低效的!

如果您在JavaScript中运行复杂的浏览器内应用程序,则该应用程序在启动时需要执行大量工作.它注册事件处理程序,加载并执行一堆JavaScript,有时会动态呈现整个页面界面(在ExtJS和其他一些库的情况下).对于浏览器来说,设置一个JavaScript应用程序有很多额外的工作,它与/admin/orders那个有很多共同点/admin/users.更有效的方法是链接触发应用程序监视的事件,并通过更改应用程序的状态来响应应用程序 - 可能通过删除或隐藏用户视图并将其替换为订单视图.路由是一种表示这些不同接口的方式,使用令牌(通常是像URL这样的URL片段)/admin/users来跟踪用户在您的界面中的位置.

这允许应用程序维护动态对象模型,它已经烧掉了时间并使用了内存来创建.它使用户界面响应更快,如果您通过hashtag或pushState使用URL历史记录管理,它允许用户使用浏览器的后退和前进按钮浏览您的应用程序,而无需重新加载每个资产.每次页面并擦除您的应用程序状态.URL管理还允许深度链接到应用程序中的某个页面:在加载时,您的应用程序的路由器会检查它接收的路由字符串,对其进行标记,并加载您在路由表中指定的接口.

为了管理持久性,不需要路由,但它是组织持久状态的好方法.通常,路由系统与URL历史管理密切相关,如Davis.js.但是也有一些不会弄乱URI的路由库,它们维护一个抽象的标记化状态,你可以根据需要使用或显示它,比如Crossroads.js.

  • SharePoint,可能不是。SharePoint 管理自己的标记,因此您不会进行这种以前端为中心的工作。可以想象,ASP.NET MVC 可以用作 JavaScript 支持的 RIA 的服务器端技术,因此答案是“也许”。关键问题是您是否正在运行单页 JavaScript 应用程序。 (2认同)