我只是想知道facebook如何管理对“我的个人资料页面”和“主页”以及其他一些似乎只重新加载某些内容的页面的请求。
例如,当我在Facebook上的“我的个人资料页面”时,我点击主页按钮,右侧的顶部栏按钮和聊天面板保持不变(它们不会重新加载)。我在webkit控制台中监视XMLHTTPRequest并且没有生成ajax,因此它不是Ajax(我认为)。否则,如果在点击这些链接时生成了FULL http请求,我认为必须重新加载整个页面,我是对的?所以我不知道如何处理。你可以帮我一把吗?
谢谢:)
答案 0 :(得分:0)
这是一种称为“快速”的性能优化,它们还使用“pagecache”策略来减少来自服务器的数据。在较低级别,它依赖于javascript执行作为LinkController,它委托超链接点击事件,然后发送ajax(或使用iframe)从服务器请求pagelet数据,响应将是一个json形成的数据结构,然后javascript将插入当前页面的内容。您的地址栏中的Uri可以处理旧浏览器中的哈希更改事件和H5的历史记录API(pushState)来管理浏览器的历史记录。