如何使用新的URL和相应的内容平滑地重新加载页面,使页眉不会闪烁?例如,如果我在Twitter上点击菜单项Home、Connect、Discover,标题仍然显示,没有闪烁。我知道唯一可以做到这一点的方法是使用Javascript,但是Javascript不能改变URL。Twitter网站背后的魔力是什么?
发布于 2012-12-20 07:15:29
他们只是在使用ajax。
标头不会闪烁,因为它不会更改。ajax调用请求数据,当它获得数据时,它将数据插入到主体中。
对于身体来说,
如果您不想在新内容被添加时突然更改,可以使用effects函数来淡入。
如果要在一次上载中加载静态数据,则可以使用CSS显示属性翻阅静态内容。
您可以看到浏览器没有加载新的url,因为没有指示器。
此外,您还可以看到twitter的ajax指示器正在运行。
要保留ajax调用的历史记录,请使用info。来自这篇文章:
For ajax - Hashes vs HTML 5 History API?
对于Twitter:
他们使用CSS来翻阅页面,因为ajax指示器和load指示器在最初的ajax调用后不会亮起。
您可以通过在控制台中执行window.history.back()来验证它们是否在使用历史记录。
要动态更改URL,请参阅:
Change the URL in the browser without loading the new page using JavaScript
发布于 2012-12-20 07:10:24
您可以使用history.pushState
来操作当前url。并使用ajax函数重新加载页面。
https://stackoverflow.com/questions/13962754
复制相似问题