Asana如何在没有#的情况下处理URL

时间:2011-12-21 23:30:57

标签: javascript url backbone.js knockout.js

您可能已经看过app.asana.com。 如果没有,你应该检查一下,这是一个非常好的设计webapp。

但我无法弄清楚他们如何处理整个URL管理。 Backbone.js或Knockout.js使用#处理URL,之后的所有内容都只是生成。

但是asana没有哈希并且可以修改URL,他们是如何做到的?

2 个答案:

答案 0 :(得分:5)

看起来他们正在使用HTML5 history.pushState();,因此他们无需刷新页面,因此他们不必在网址中使用#(哈希)来确定参与网络应用程序。

以下是关于history.pushState();https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

的精彩教程

这是Google+和Facebook用来更改网址而不刷新的内容。

我希望这会有所帮助。

答案 1 :(得分:3)

HTML5推送状态:http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page

这里的一大好处是,如果您将Asana URL直接粘贴到浏览器中(或单击电子邮件中的链接),服务器将看到完整的URL并立即将相应的任务数据发送到客户端。我们曾经使用url片段,但是我们需要在加载应用程序后再进行第二次往返,以便在JavaScript中读取片段并将其传递给服务器。