我想要像它在Facebook上,当用户浏览这些照片做实现内容浏览。我想大家都熟悉那张照片浏览器,你可以点击“下一张”和“上一张”,然后立即获取下一张或上一张照片(也可以使用箭头键进行导航)。“重定向”页面没有刷新(Facebook的照片风格)
当您单击例如,你会注意到网页不刷新“下一步” - 唯一的内容。起初,我认为这是使用纯ajax调用完成的,它只刷新了“内容”,在这种情况下,图像,描述和评论。但后来我注意到,我的浏览器的“位置”工具栏中的URL也被更改了! 我试图检查这个使用Firebug,并发现,当你点击“下一步”只下载的下一张照片,我仍然不知道从评论&图像元数据(描述,时间,标签,...)是加载。
能有人请解释这个技术是如何实现的 - 无需刷新页面页面URL变化(甚至没有网页“闪烁”,如果它从缓存刷新)。 我知道如何使用Ajax来改变网页内容,但该网页的网址保持不变所有的时间。如果我点击“刷新”按钮,我会再次获得第一页。但不是在Facebook上,因为即使“window.location”每次都改变而没有实际的重定向。
我注意到的另一件事是,底部工具栏(应用程序,聊天,...)是“总在最前面”。即使更改的页面,这个工具栏不刷新,始终走在最前面 - 它甚至不“眨眼”一样,刷新(无论是从网络服务器或从本地缓存)其他页面。我想这是与上述相同的技术 - 某种“假”重定向或什么?
答案是pushState的
if (window.history.pushState)
window.history.pushState([object or string], [title], [new link]);
你会微笑:)
对于它的价值[(在IE8 +,其余的大多数支持) History.js](https://github.com/balupton/History.js)提供相同的HTML5 API而正常降解不支持它的任何浏览器(包括用于数据和标题,及replaceState功能的支持)。使用这将意味着你不必为IE9的变化而改变你的代码。 – balupton 2011-02-09 15:07:20