代码之家  ›  专栏  ›  技术社区  ›  xRobot

Comet与Ajax轮询

  •  8
  • xRobot  · 技术社区  · 15 年前

    我需要创建一个类似Facebook聊天的聊天。

    有了彗星,我需要更多的记忆来保持联系。

    对于Ajax轮询,如果我每3-4秒发送一次请求,就会出现延迟问题。

    所以…如果延迟(3-4秒)无关紧要,Ajax轮询是否比我的情况更好?

    3 回复  |  直到 14 年前
        1
  •  6
  •   Vasil Remeniuk    15 年前

    延迟不是唯一的问题。Comet(long polling)“节省”您的流量-使用轮询时,您不知道服务器上是否有更改,因此某些呼叫可能只是浪费流量和资源(例如,即使没有人在聊天,您也会每隔3-4秒进行一次呼叫)。对于Comet,通常只需要一个调用就可以从服务器获取更新(命中率为100%)。

        2
  •  2
  •   Community CDub    8 年前

    @瓦西尔:“你可以保持数以百万计的开放连接”

    看一看 to this problem

    关于 the false superiority 在IO上的NIO。

    iobound文章只显示IO比NIO好,是的,IO在NIO之前就耗尽了内存(顺便说一下,作者还没有尝试用较低的值减少堆栈内存)。

        3
  •  1
  •   Quotidian    15 年前

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