为什么新的网络Dropbox可以在没有页面刷新的情况下更改URL?

时间:2012-03-15 10:23:26

标签: javascript ajax

  

可能重复:
  How to change the URL displayed in the browser without leaving the page
  How to do awesome refreshless page changes like GitHub
  Change browser URL and page content without reload and without using fragments

太神奇了!新的Dropbox网络版可以做到这一点!它会做ajax请求并更改url,但页面不会刷新!(不更改哈希值)

网址将从https://www.dropbox.com/home/更改为https://www.dropbox.com/home/Public

你可以尝试一下。

如何实现它?

2 个答案:

答案 0 :(得分:2)

他们正在使用HTML5 Pushstate:

http://badassjs.com/post/840846392/location-hash-is-dead-long-live-html5-pushstate

什么是pushState?

历史对象获得两种新方法,pushState& replaceState,允许我们改变 浏览器的当前位置而不发出HTTP请求。这些新位置存储在 浏览器历史记录,以便后退和前进按钮都按预期工作。

 history.pushState({foo: "bar"}, "foo page", "/foo")

答案 1 :(得分:1)

使用history.pushState()方法

可以在同一个域中执行此操作