Facebook中的URL更改ajax调用

URL change ajax call in Facebook

本文关键字:ajax 调用 更改 URL 中的 Facebook      更新时间:2023-09-26

在facebook中,无论何时导航到不同的URL(在某些情况下),URL都会发生变化,但不会感觉到转到了不同的页面。

例如:当我们在facebook中查看图片时,当我们移动到下一张图片时,地址栏中的URL会发生变化

FROM>facebook.com/foo?bar=foobar&xxxx=

TO>>facebook.com/foo?bar=胸部&xxxx=

这也不是散列变化像

FROM>facebook.com/xxxxx#xxx=xxxx-

TO>>facebook.com/xxxxx#xxx=yyyy

这怎么可能做到天衣无缝呢。我的意思是,只有一个容器在URL更改时才会被修改。URL更改应该导航到一个不同的页面,该页面可以包含上一个页面的缓存信息,通过浏览器的屏幕变为空白可以明显地看到URL更改的THIS导航。

如果使用iFrame,如何实现?

我使用了一些类似于这个的东西

try {
  var stateObj = { foo: "bar" };
  history.pushState(stateObj, "page", href);
  loadPage(href);
}
catch(e) {
  window.location.hash = "#!/"+href;
}

如果它支持HTML5 pushState,他们会更改URL,但如果它不支持,那么回退就是窗口哈希。

哇。我几分钟前刚问过。。。下次使用搜索;)

当我';m处理ajax数据

修改URL而不重新加载页面

有一个名为"address"的jQuery插件,它将监视更改并调用您提供的函数。我认为它只是每隔100毫秒左右检查一次URL。

他们发出AJAX请求以获取完成"导航"所需的数据,然后告诉浏览器"转到#xxx=yyy"。由于不存在这样的锚点,浏览器实际上不会向下滚动。然而,它确实记录了一个新的历史记录条目,并更新了URL,这样,如果有人复制粘贴该URL,他们将查看用户看到的同一对象,而不仅仅是原始页面。