2011-12-21 34 views
6

您可能已经看到app.asana.com。 如果没有,你应该检查出来,这是一个非常好的设计的Web应用程序。Asana如何处理没有#的网址?

但我不知道他们如何处理整个URL管理。 Backbone.js或Knockout.js使用#处理URL,并且之后的所有内容都将生成。

但是asana没有散列并且可以修改URL,他们是怎么做到的?

+0

可能重复[如何github保持加载页面,同时更改URL?](http://stackoverflow.com/questions/6051057/how-does-github-keep-a-loaded-page-while-changing-网址) – Quentin

回答

5

看起来他们正在使用HTML5 history.pushState();,因此他们不必刷新页面,因此他们不必在URL中使用#(散列)以转到Web应用程序中的某个部分。

下面是关于history.pushState();一个很好的教程:https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

这是什么Google+和Facebook使用更改URL不清爽。

我希望这会有所帮助。

3

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

这里最大的好处是,如果你贴上一个体位网址直接进入浏览器(或点击电子邮件中的链接),服务器看到完整的URL,可以立即发送向客户提供适当的任务数据。我们曾经使用过url片段,但是我们需要在加载应用程序以在JavaScript中读取片段并将其传递给服务器之后进行第二次往返。