彗星VS阿贾克斯民意调查

时间:2010-06-04 14:58:29

标签: javascript ajax comet chat polling

我需要像Facebook聊天一样创建聊天。

使用Comet我需要更多内存来保持连接。

如果我每隔3-4秒发送一次请求,那么使用Ajax轮询会出现延迟问题。

所以...如果延迟(3-4秒)无关紧要,Ajax Polling对我的情况更好吗?

3 个答案:

答案 0 :(得分:6)

延迟不是唯一的问题。 COMET(长轮询)“保存”您的流量 - 当您使用轮询时,您无法知道,如果服务器上有更改,那么一些呼叫可能只是浪费流量和资源(例如,即使没有人聊天,你每隔3-4秒拨打一次电话。在COMET的情况下,您通常只需要一次调用即可从服务器获取更新(命中率为100%)。

答案 1 :(得分:2)

@Vasil:“你可以保留数百万个已打开的连接”

看看to this problem

关于IO的the false superiority和IO。

iobound文章只是显示IO优于NIO,是的,在NIO之前IO内存不足(顺便说一下,作者还没有尝试用较低的值来减少堆栈内存)。

答案 2 :(得分:1)

如果延迟不是问题,那么AJAX可能更好。如果您不是非常非常小心,Comet可能会遇到维护同一客户端/服务器对之间多个连接的问题。 (Ref)