几天来,我一直在为我的网站试验长轮询/彗星实施。我已经了解了它的工作原理this is where i run some tests。
另一方面,我一直在观察(firebug)gmail和facebook如何实施长轮询。我在gmail中注意到的是,ajax请求在当前请求到期后不会继续跟进,但它会在触发下一个请求之前等待几秒钟/分钟。
我还玩了一些。我尝试使用firefox中的gmail帐户A和chrome中的gmail帐户B登录。我在当前的ajax民意调查结束时等待,然后我从账户B发送了一封电子邮件给了A.我希望账户A在下次投票之前不会收到它,但令我惊讶的是账号A在我点击之后直接收到了提交按钮。
gmail如何通过长轮询进行此操作?
如果您尝试访问我的网站并单击“运行”按钮并打开firebug,您可以看到ajax微调器始终在运行。当服务器响应数据时,它会再次请求服务器。
答案 0 :(得分:1)
查看来自Frozenmountain或SignalIR的WebSync,它们可以从支持的部分中完成工作。我可以保证每天都使用websync,但是听到了有关signalir的好消息。
答案 1 :(得分:1)
我认为您使用(仅)长轮询的假设是不正确的。根据{{3}}(和答案),它永远使用框架,永远使用XHR。另请参阅this question,它们用于Gmail聊天。