如何顺利地用新的URL和相应的内容重新加载页面,以使页眉不会闪烁?例如,如果在Twitter上我单击菜单项“主页”,“连接”,“发现”,则标题保持显示,没有闪烁。我知道可以做到的唯一方法是使用Javascript,但是Javascript无法更改URL。 Twitter网站背后的魔力是什么?
最佳答案
他们只是在使用ajax。
标头不会闪烁,因为它不会更改。 Ajax调用要求提供数据,并在获取数据时将其插入主体。
对于身体
如果不想在更改内容时进行突然更改,可以使用效果功能淡入新内容。
如果要在一次上传中加载静态数据,则可以使用CSS display属性浏览静态内容。
您会看到浏览器没有加载新的URL,因为没有指示符。
另外,您可以看到Twitter的ajax指示器正在运行。
要保留ajax调用的历史记录,请使用info。从这篇文章:
For ajax - Hashes vs HTML 5 History API?
对于Twitter:
他们使用CSS来翻页,因为ajax指示器和加载指示器在初始ajax调用后没有点亮。
您可以通过在控制台中执行window.history.back()来验证他们是否正在使用历史记录。
要动态更改URL,请参见:
Change the URL in the browser without loading the new page using JavaScript