0

例如,当我们在http://facebook.comhttp://gmail.com上有新消息时,网站会向我们发出信号,而这发生在没有刷新页面的情况下。这个怎么运作?我是这样想象的:

一些 Jhon 是现场注册用户。

有 javascript 代码,每 10 秒向消息表发送 AJAX 请求,用于检查:在表中,是否有未读消息给 john(架构,如何标记就绪/未读消息,这里不重要),如果是,站点给出信号对 Jhon “你有几条新消息”。

请告诉我,我是否更接近真相?如果是,我还有一个问题。

4

1 回答 1

2

在现代站点中,我们使用websockets,它使服务器能够以更少的开销和无延迟地将信息推送到浏览器。这就是SO上使用的。

但是由于某些浏览器仍然不支持它们,因此我们有时必须退回到您所描述的拉循环。

在服务器上,它可以在每个浏览器请求时使用队列而不是数据库查询来处理。但是在这一点上可能有许多不同的实现。

于 2012-09-27T14:19:48.830 回答