1

怎样才能让页面重新加载一个新的 URL 和对应的内容顺利,让 header 不闪烁?例如,如果我在 Twitter 上单击菜单项 Home、Connect、Discover,标题保持显示,没有闪烁。我知道可以做到这一点的唯一方法是使用 Javascript,但 Javascript 不能更改 URL。Twitter网站背后的魔力是什么?

4

2 回答 2

0

您可以使用history.pushState来操纵当前的 url。并使用 ajax 函数重新加载页面。

于 2012-12-19T23:10:23.997 回答
0

他们只是使用ajax。

标头不会闪烁,因为它没有改变。ajax 调用请求数据,当它得到数据时,它会将其插入到正文中。

对于身体,

如果您不想在 ajaxed 时突然更改新内容,则可以使用效果函数淡入新内容。

如果您想在一次上传中加载静态数据,则可以使用 CSS 显示属性翻阅静态内容。

您可以看到浏览器没有加载新的 url,因为没有指示符。

此外,您可以看到 twitter 的 ajax 指示器正在运行。

要保留 ajax 调用的历史记录,请使用 info。从这篇文章:

对于 ajax - 哈希与 HTML 5 历史 API?

对于推特:

他们使用 CSS 来翻页,因为 ajax 指示器和加载指示器在初始 ajax 调用后不亮。

您可以通过在控制台中执行 window.history.back() 来验证他们是否正在使用历史记录。

要动态更改 URL,请参见:

更改浏览器中的 URL 而不使用 JavaScript 加载新页面

于 2012-12-19T23:15:29.413 回答