怎样才能让页面重新加载一个新的 URL 和对应的内容顺利,让 header 不闪烁?例如,如果我在 Twitter 上单击菜单项 Home、Connect、Discover,标题保持显示,没有闪烁。我知道可以做到这一点的唯一方法是使用 Javascript,但 Javascript 不能更改 URL。Twitter网站背后的魔力是什么?
问问题
635 次
2 回答
0
您可以使用history.pushState
来操纵当前的 url。并使用 ajax 函数重新加载页面。
于 2012-12-19T23:10:23.997 回答
0
他们只是使用ajax。
标头不会闪烁,因为它没有改变。ajax 调用请求数据,当它得到数据时,它会将其插入到正文中。
对于身体,
如果您不想在 ajaxed 时突然更改新内容,则可以使用效果函数淡入新内容。
如果您想在一次上传中加载静态数据,则可以使用 CSS 显示属性翻阅静态内容。
您可以看到浏览器没有加载新的 url,因为没有指示符。
此外,您可以看到 twitter 的 ajax 指示器正在运行。
要保留 ajax 调用的历史记录,请使用 info。从这篇文章:
对于推特:
他们使用 CSS 来翻页,因为 ajax 指示器和加载指示器在初始 ajax 调用后不亮。
您可以通过在控制台中执行 window.history.back() 来验证他们是否正在使用历史记录。
要动态更改 URL,请参见:
于 2012-12-19T23:15:29.413 回答