Facebook的客舱没有页面之间重装(Facebook chatbox doesn't r

2019-08-17 22:55发布

我在Facebook上看到这个功能,当你有一个聊天框在右下角开了,你去到另一个页面,比如说,你的朋友的个人资料,或在Facebook的一些照片集网页,聊天框不会重新加载,它保持它在哪里(仿佛在背景页的顶部的单独的层)。

所以很自然,我认为Facebook是不是重新加载页面本身,它是使用history.pushstate和相关职能异步加载的内容,并动态更改URL(萤火虫证实它,如果你点击你的朋友的名字之一和被采取对您的朋友的个人资料页面,它实际上是一个GET被解雇请求)。 所以,因为没有任何确切页面加载时,客舱可以只处于闲置状态,因为它是。

然而, pushstate不支持IE版本10.尽管如此之前,它的作品就好了IE9也是如此。 因此,谁能告诉我,他们是如何做的呢? 他们使用的history API可言,或不同的东西?

Answer 1:

这是一个简单地回答一个很大的问题。 我不知道关于Facebook,但这应该帮助你- History.js

History.js优雅地支持所有浏览器的HTML5历史/国家的API(pushState的,replaceState,onPopState)。 包括数据,标题,replaceState继续支持。 支持jQuery的,MooTools的和原型。 对于HTML5的浏览器,这意味着你可以直接修改URL,而无需再使用哈希。 对于HTML4浏览器也将恢复到使用旧onhashchange功能。



文章来源: Facebook chatbox doesn't reload between pages