今天,当我在两个不同的浏览器中使用Google+时,我用一个浏览器发布了一些内容。该帖几乎立即出现在第二个浏览器上(可能有0.5秒的延迟)。 Google如何实现这一目标?他们是否经常发送AJax请求以检查新帖子?这不会给服务器带来很大压力吗?
答案 0 :(得分:2)
有多种方法可以用来做到这一点:
每个人都有自己的警告和可能性。
如果您对能够进行实时应用程序感兴趣,可以查看socket.io这是所有这些技术的优秀抽象库,因此它将使用最适合您的浏览器。
答案 1 :(得分:0)
不能说谷歌如何确切地做到这一点,但他们必须使用某种push technology。 HTML5 WebSockets可以在较新的浏览器中执行此操作。在不支持websockets的旧版浏览器中,客户端通常会定期轮询服务器。有关WebSockets的整洁跨浏览器实现,请参阅socket.io,如果浏览器不支持,则返回其他方法,documented here。
答案 2 :(得分:0)
我认为他们可以使用的一种技术是立即发送AJAX请求,然后在服务器端阻止它,直到可以发送超时或内容为止。
答案 3 :(得分:0)
多年来谷歌一直在使用Comet或Reverse Ajax:http://en.wikipedia.org/wiki/Comet_(programming))
但是,我相信他们现在正在使用HTML5 WebSocket,因为API已准备就绪: http://en.wikipedia.org/wiki/WebSocket/