Facebook 中的 URL 更改 ajax 调用
Posted
技术标签:
【中文标题】Facebook 中的 URL 更改 ajax 调用【英文标题】:URL change ajax call in Facebook 【发布时间】:2011-06-03 15:58:27 【问题描述】:在 facebook 中,每当您导航到不同的 URL 时(在某些情况下),该 URL 都会发生变化,但不会感觉到转到不同的页面。
例如:当我们在 facebook 中查看图片时,当我们移动到下一张图片时,地址栏中的 URL 会发生变化
FROM >facebook.com/foo?bar=foobar&xxxx=
TO > >>facebook.com/foo?bar=boobar&xxxx=
这也不是散列变化 喜欢
FROM >facebook.com/xxxxx#xxx=xxxx
到 > >>facebook.com/xxxxx#xxx=yyyy
这怎么可能无缝。我的意思是如何在 URL 更改时只修改一个容器。 URL 更改应该导航到一个不同的页面,该页面可以包含来自前一页的缓存信息,并且通过浏览器的屏幕变为空白片刻,可以清楚地看到通过 URL 更改进行的这种导航。
如果使用 iFrame,如何实现?
【问题讨论】:
他们正在使用 html5 History API。 【参考方案1】:我使用类似的东西
try
var stateObj = foo: "bar" ;
history.pushState(stateObj, "page", href);
loadPage(href);
catch(e)
window.location.hash = "#!/"+href;
如果它支持 HTML5 pushState,它们会更改 URL,但如果不支持,则回退是窗口哈希。
【讨论】:
【参考方案2】:哇。我几分钟前刚问过...下次使用搜索 ;)
Dynamic favicon when I'm proccessing ajax data
Modify the URL without reloading the page
【讨论】:
***.com/questions/824349/…【参考方案3】:有一个名为“address”的 jQuery 插件,它将监视更改并调用您提供的函数。我认为它只是每 100 毫秒左右检查一次 URL。
【讨论】:
【参考方案4】:他们为完成“导航”所需的数据发出 AJAX 请求,然后告诉浏览器“转到#xxx=yyy”。由于这样的锚点不存在,浏览器实际上并没有向下滚动。但是,它确实会记录一个新的历史条目,并且还会更新 URL,因此如果有人复制粘贴该 URL,他们将查看用户正在查看的同一对象,而不仅仅是原始页面。
【讨论】:
以上是关于Facebook 中的 URL 更改 ajax 调用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 hashbang url 处理 Facebook 分享/点赞?