您可能已经看到app.asana.com。 如果没有,你应该检查出来,这是一个非常好的设计的Web应用程序。Asana如何处理没有#的网址?
但我不知道他们如何处理整个URL管理。 Backbone.js或Knockout.js使用#处理URL,并且之后的所有内容都将生成。
但是asana没有散列并且可以修改URL,他们是怎么做到的?
您可能已经看到app.asana.com。 如果没有,你应该检查出来,这是一个非常好的设计的Web应用程序。Asana如何处理没有#的网址?
但我不知道他们如何处理整个URL管理。 Backbone.js或Knockout.js使用#处理URL,并且之后的所有内容都将生成。
但是asana没有散列并且可以修改URL,他们是怎么做到的?
看起来他们正在使用HTML5 history.pushState();
,因此他们不必刷新页面,因此他们不必在URL中使用#
(散列)以转到Web应用程序中的某个部分。
下面是关于history.pushState();
一个很好的教程:https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history
这是什么Google+和Facebook使用更改URL不清爽。
我希望这会有所帮助。
HTML5按压状态:http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page
这里最大的好处是,如果你贴上一个体位网址直接进入浏览器(或点击电子邮件中的链接),服务器看到完整的URL,可以立即发送向客户提供适当的任务数据。我们曾经使用过url片段,但是我们需要在加载应用程序以在JavaScript中读取片段并将其传递给服务器之后进行第二次往返。
可能重复[如何github保持加载页面,同时更改URL?](http://stackoverflow.com/questions/6051057/how-does-github-keep-a-loaded-page-while-changing-网址) – Quentin