在Facebook中,无论何时导航到不同的URL(在某些情况下),URL都会发生变化,但感觉不会感觉到其他页面。
例如:当我们在Facebook中查看图片时,当我们移动到下一张图片时,地址栏中的网址会发生变化
FROM> facebook.com/foo?bar = foobar& xxxx =
TO> >> facebook.com/foo巴= boobar&安培; XXXX =
这也不是哈希的变化 喜欢
FROM> facebook.com/xxxxx#xxx=xxxx
TO> >> facebook.com/xxxxx#xxx=yyyy
这怎么可能无缝地实现。我的意思是如何在URL更改时仅修改容器。 URL更改应该导航到另一个页面,该页面可以包含来自上一页的缓存信息,并且通过URL更改可以明显看出此浏览器屏幕空白片刻。
如果使用iFrame,如何实现?
答案 0 :(得分:1)
我使用与此类似的东西
try {
var stateObj = { foo: "bar" };
history.pushState(stateObj, "page", href);
loadPage(href);
}
catch(e) {
window.location.hash = "#!/"+href;
}
如果它支持HTML5 pushState,则更改URL,但如果不支持,则后退是窗口哈希。
答案 1 :(得分:0)
有一个名为“地址”的jQuery插件会监视更改并调用您提供的功能。我认为它只是每100毫秒左右检查一次URL。
答案 2 :(得分:0)
哇。我刚刚在几分钟前问过它......下次使用搜索;)
答案 3 :(得分:0)
他们为完成“导航”所需的数据发出AJAX请求,然后告诉浏览器“转到#xxx = yyy”。由于这样的锚不存在,浏览器实际上不向下滚动。但是,它会记录新的历史记录条目,并且还会更新URL,以便在有人复制粘贴该URL时,他们将查看用户所看到的同一对象,而不仅仅是原始页面。