GMail Chat如何在没有客户端交互的情况下发出AJAX请求?

所有的HTTP响应都要求客户端启动它们,甚至是使用AJAX进行的响应。 但是GMail的聊天function能够接收来自其他用户的消息,即使我只是坐在舒适的电脑椅上观看,却不能与浏览器交互。 他们是如何做到的呢?

该技术被称为“彗星”,也被称为“服务器推动”,“反向阿贾克斯”等。

这是关于从服务器推送数据到浏览器,保持HTTP连接。 在维基百科文章 ( 英文版 )上查找更多信息。

这里还有一个相当不错的演讲 ,来自DWR的Joe Walker,他谈到了彗星。

正如您正确地指出的那样,HTTP要求数据由客户端“拉”。 Gmail仍然可以通过使用定时器来触发HTTP操作,而不是要求用户点击某些东西,从服务器“拉出”数据。 所以,它似乎是汽车,但它仍然是客户端启动。

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