【问题标题】:why use javascript routing?为什么要使用 javascript 路由?
【发布时间】:2012-02-01 20:55:33
【问题描述】:

似乎有许多库和包(Crossroads.js 等)支持此 javascript 路由功能,但我无法理解这种有价值的场景。

在有用的情况下,有人愿意大发雷霆吗?

我的背景是 ASP.NET(Web 表单)编程和一些业余的 javascript/jquery。

【问题讨论】:

  • 你说的是图表中的线路路由吗?
  • 不,更多的是像 Crossroads.js 这样的包所获得的功能。
  • Javascript 如今正在发生很大的变化,有很多趋势让它在大规模上更舒适,但事实并非如此。会有可靠的模式和最佳实践,但像 crossroads.js 这样的东西是新领域的先驱。巧妙的开拓者。

标签: javascript asp.net backbone.js url-routing


【解决方案1】:

它为您提供了处理客户端行为的选项,而无需像处理路由服务器端的情况一样重新加载整个页面。

它为更具响应性和交互性的设计开辟了可能性,因为您无需在每次路线更改时重新加载整个页面,您可以仅重新呈现网站中针对给定路线更改的部分。同时,它有助于减少服务器上的负载,因为您将客户端服务器通信减少为仅发送显示页面所需的数据供客户端处理(渲染视图等)

由于使用了主干.js 或其他 mvc(-like) 框架,您可以减少服务器以仅公开 REST API 以处理和接收数据,而无需处理渲染,并且您正在传递一些 - 甚至大多数时候 - 客户的逻辑。

现在大多数网络应用都在利用客户端路由 - 从 GMail 到 twitter。

【讨论】:

  • 你能举一个具体的例子吗?如果我有一个单页应用程序并且每个主要部分都有一些暴露在服务器上的 ajax 端点,用适当的内容刷新相应的页面部分,那么有什么好处?
  • 拥有正确的路由,而不是分散在各处的 ajax 回调意味着它对用户来说更容易、更优雅,因为对于他来说,它仍然是具有干净 URL 地址的良好旧互联网,他们可以添加书签、复制和粘贴到文档、朋友等,只需访问地址即可轻松访问页面/应用程序的给定状态。用户正在习惯越来越多的互动和无缝体验,而浏览器的速度也越来越快,足以提供这些体验。
  • 这只是从 ajax 繁重的应用程序和适应我们从服务器端开发及其 MVC 框架中学到的最佳实践的一步。 (不适合:))
  • 谢谢。关于“拥有正确的路由而不是分散在这里或那里的ajax回调意味着它对用户来说更容易和更优雅......”:它有什么更好的?能举个具体的例子吗?
  • 最后 - 如果您通过更新浏览器地址栏中的应用程序 URL 来获得相同的结果,并且可以使用这些自定义 url 访问应用程序的所有状态 - 从用户的角度来看它与路由一样好,因为它实现了相同的目标。但!在应用程序中添加对新路由/路径的处理,然后在没有路由器的情况下在某种 ajax 解决方案中支持处理额外页面时,会更加冗长、更易于维护和更简洁。
【解决方案2】:

好的-我想我现在理解得更好了。它只是函数调用者和被调用者之间的抽象层。除了在调用者和被调用者之间附加硬编码的依赖关系之外,您还可以引入一个路由系统,该系统将根据一些配置将两者连接起来,并提供额外的功能,如验证,或将多个被调用者绑定到调用者。然后你可以用restful句柄(例如“/getCoffee/decaf”)来引用你的动作,这些句柄也可以动态构造(因为它们只是字符串)。

我仍在思考路由方案与创建自定义事件的相对优势。

【讨论】:

    猜你喜欢
    • 2017-01-30
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多