我真的很想知道为什么facebook和谷歌可以在不重新加载页面的情况下更改网址?他们只是改变他们网站中的块或内容。
我注意到当我使用facebook时,点击“新的Feed”时,网址为“http://www.facebook.com/”,页面没有重新加载,然后我点击“消息”网址更改为“http://www.facebook.com/messages/”,页面仍然没有重新加载只是更改网站的“内容”块。
那么如何在不重新加载页面的情况下更改网址呢?
编辑:我得到了答案 这里有2个案例:
希望对像我这样怀疑的人有所帮助。
答案 0 :(得分:8)
您是否查看了Javascript的历史API?
http://diveintohtml5.ep.io/history.html
编辑:您也可以将mod_rewrite与apache一起使用,但这会导致刷新。
或者有这个JQuery插件
答案 1 :(得分:2)
网址通常会更改为http://facebook/#!messages,因此更改“片段”网址部分不会使浏览器重新加载网页。相反,有一些JavaScript库可以监视片段更改并发出适当的请求以重新加载页面内容。
#!
的使用几乎成为做这些事情的“标准”,我已经在其他地方看到过这种情况(例如在Twitter上)。我不记得他们是否都使用相同的库或只是命名约定,但你应该能够在fb / twitter开发者页面上挖掘它。
答案 2 :(得分:0)
您可以为此目的查看Content-Location HTTP标头。有关详细信息,请参阅here。
答案 3 :(得分:0)
我在JSBin.com上编码,主要使用CSS和HTML(以前废弃的Javascript loooong)并有一个问题。例如,网页的网址为http://www.codingrules.com/ 那么,使用HTML,我如何更改该URL为例如 http://www.ilovecoding.com