2012-02-01 73 views
7

似乎有很多库和软件包(Crossroads.js等)支持此j​​avascript路由功能,但我无法理解这种情况,这是有价值的。为什么使用javascript路由?

任何人都在意这种有用的情况下去吃点东西吗?

我的背景是与ASP.NET(网页形式)编程和一些业余的JavaScript/jQuery的。

+0

你是在说图中的线路由吗? – 2012-02-01 20:57:04

+0

不,更符合Crossroads.js等软件包的功能。 – skeej 2012-02-01 21:00:32

+1

现在Javascript的发展很多,有很多关于大规模更舒适的趋势,但事实并非如此。将有坚实的模式和最佳实践,但像crossroads.js这样的事物是新理由的先驱。巧妙的先驱。 – SoonDead 2012-02-01 21:09:16

回答

5

它使您可以选择处理客户端行为,而无需重新加载整个页面,就像处理路由服务器端的情况一样。

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

感谢使用backbone.js或其他mvc(类似)框架,您可以减少服务器仅公开REST API以处理和接收数据,而无需处理渲染,并且将逻辑的一些 - 甚至大多数时间 - 传递给客户。

现在大多数网络应用都在利用客户端路由 - 从Gmail到Twitter的任何内容。

+2

你能举一个具体的例子吗?我有一个单页面应用程序,每个主要部分在服务器上暴露了一些Ajax端点,并使用适当的内容刷新相应的页面部分,这有什么好处? – skeej 2012-02-01 21:23:11

+2

有适当的路由,而不是分散在这里或那里的Ajax回调意味着它对用户来说更容易和更优雅,因为对于他来说,它仍然是具有干净URL地址的好旧互联网,它们可以书签,复制和粘贴到文档,朋友等。并通过访问地址轻松访问页面/应用程序的给定状态。 用户越来越习惯于越来越多的交互式和无缝的体验,浏览器越来越快地提供这些体验。 – 2012-02-01 21:36:05

+0

这只是向前迈进了一大步,我们从服务器端开发及其MVC框架中学到了最佳实践。 (不适合:)) – 2012-02-01 21:38:43

1

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

我仍在思考路由方案相对于创建自定义事件的好处。

相关问题