Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript路由给你买了什么?_Javascript_Asp.net_Url Routing - Fatal编程技术网

JavaScript路由给你买了什么?

JavaScript路由给你买了什么?,javascript,asp.net,url-routing,Javascript,Asp.net,Url Routing,我一直在研究各种RIA,并注意到一些人使用或请求。只是浏览一下“JavaScript路由”看起来像是一种遍历站点的方式……但我可以使用一个简单的链接。这意味着我绝对“不明白” 所以… 路由为您提供了常规锚或链接所没有的什么 它是否仅适用于某些环境?(即ASP.NET或纯HTML) 这是干什么用的 它存在的目的是什么 路由是组织和管理应用程序状态的一种方法。JavaScript中的路由框架可以帮助您在保持应用程序持久性的同时更改应用程序的状态(可能从一个管理面板部分移动到另一个管理面板部分) 如

我一直在研究各种RIA,并注意到一些人使用或请求。只是浏览一下“JavaScript路由”看起来像是一种遍历站点的方式……但我可以使用一个简单的链接。这意味着我绝对“不明白”

所以…

  • 路由为您提供了常规锚或链接所没有的什么
  • 它是否仅适用于某些环境?(即ASP.NET或纯HTML)
  • 这是干什么用的
  • 它存在的目的是什么

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

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

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

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


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

      所以,很明显,这不会在ASP.NET MVC或SharePoint应用程序中使用……对吗?SharePoint,可能不会。SharePoint管理自己的标记,因此您不会做这种以前端为中心的工作。可以想象,ASP.NETMVC可以用作基于JavaScript的RIA的服务器端技术,因此答案是“可能”。关键问题是您是否正在运行单页JavaScript应用程序。请注意,尽管默认情况下Davis.js使用pushState来维护状态,但它也可以轻松地使用任何其他方式来维护当前状态,无论是通过URL还是其他方式。谢谢,@OliverNightingale!当我研究Davis.js时,我很喜欢它,但被否决了,我选择了一个自主开发的解决方案,所以我对它不够熟悉,不知道它是多么模块化。干得好!措辞优美。