如果没有客户端交互,GMail Chat如何能够发出AJAX请求?

时间:2009-04-09 03:49:02

标签: ajax gmail comet chat

所有HTTP响应都要求客户端启动它们,甚至是那些使用AJAX创建的响应。但是,GMail的聊天功能可以接收来自其他用户的消息,即使我只是坐在舒适的电脑椅上观看但没有与浏览器交互。他们是怎么做到的?

3 个答案:

答案 0 :(得分:42)

该技术被称为“彗星”,但也被称为“服务器推送”,“反向ajax”等。

它是关于将数据从服务器推送到浏览器,保持http连接存活。在wikipedia articleEnglish version)上查找有关它的更多信息。

这里还有来自DWR的Joe Walker pretty good presentation,他在那里谈到彗星。

答案 1 :(得分:8)

正如您正确指出的那样,HTTP要求客户端“拉”数据。 Gmail仍然可以通过使用计时器来“触发”服务器中的数据来触发HTTP操作,而不是要求用户点击某些内容。所以,它似乎是自动的,但它仍然是客户端发起的。

答案 2 :(得分:5)

是的彗星是正确的。 Google Web Toolkit Applications by Ryan Dewsbury解释了如何在第9章中创建基于Comets的Instant Messenger应用程序。