网站如何使用AJAX立即更新其内容?

时间:2012-03-14 21:45:09

标签: javascript ajax

今天,当我在两个不同的浏览器中使用Google+时,我用一个浏览器发布了一些内容。该帖几乎立即出现在第二个浏览器上(可能有0.5秒的延迟)。 Google如何实现这一目标?他们是否经常发送AJax请求以检查新帖子?这不会给服务器带来很大压力吗?

4 个答案:

答案 0 :(得分:2)

有多种方法可以用来做到这一点:

  • 的WebSockets
  • AJAX Long-Polling
  • 页面计时器
  • I帧

每个人都有自己的警告和可能性。

如果您对能够进行实时应用程序感兴趣,可以查看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/

http://dev.w3.org/html5/websockets/