0

在 Facebook 上单击链接时,顶部标题栏根本不会闪烁。我习惯于在通过 ajax 加载内容的页面上看到这种效果,但在 Chrome 上,url 正在改变,据我所知,这意味着加载了一个新页面。

在 javascript 中,我知道没有重定向就无法更改 url,但主题标签可以,所以我觉得这很有趣。我认为这可能是 chrome 所做的事情,它会先加载一个网页,然后再将您从上一个网页中移除以创建无缝体验,因此我在 Internet Explorer 上进行了尝试。在 IE 上,效果相同,但这次 url 没有改变,只是 hashtag。我也在 FireFox 上试过,它改变 URL 的方式与 chrome 相同。

这里发生了什么?

4

3 回答 3

4

是的,它加载了 AJAX。并且通过操纵历史来更改网址。一个名为HistoryJS的不错的库也使用哈希更改为不支持的浏览器包装了此功能。

于 2012-06-22T22:42:44.113 回答
1

不确定 Facebook 上是否是这种情况,但History API允许您以编程方式更改 URL - 只要您遵守相同的来源策略GitHub是不显眼地使用这种技术的一个很好的例子。

于 2012-06-22T22:42:48.553 回答
1

在现代浏览器中,可以通过该history.pushState()函数在不重新加载页面的情况下更新 URL。

例子:

history.pushState({}, "", "foo.html");
于 2012-06-22T22:43:27.590 回答