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

后续Ajax调用之间的最短时间

  •  2
  • kgiannakakis  · 技术社区  · 16 年前

    在需要定期轮询服务器的Ajax应用程序中(如聊天应用程序),建议两次调用之间的最短时间是多少,以便尽快完成更新?什么时候被认为是服务器和客户机的“猪”?

    4 回复  |  直到 16 年前
        1
  •  1
  •   Greg    16 年前

    这取决于应用程序,但对于聊天,您可能需要经常进行民意调查——我想说,是1到4秒。您可以做的是动态更改轮询间隔以减少服务器负载-如果一分钟内没有人说任何话,请增加到10秒…5分钟后增加到30秒-这类事情。

        2
  •  2
  •   Josh Hinman    16 年前

    这个问题的答案在很大程度上取决于:

    1. 每次投票发送多少数据
    2. 一次有多少用户在线
    3. 服务器可以处理多少带宽
    4. 客户机上的数据需要如何“更新”

    如果不知道应用程序的任何细节,就很难给出一个好的推荐。您是否研究过一种方法,即客户机连接到服务器,而服务器保持连接打开,直到有可用的数据为止?然后服务器发送数据,客户机立即重新连接并再次等待。这可能很难工作,但您可能能够以这种方式最大限度地提高带宽效率和响应能力。

        3
  •  2
  •   Thevs    16 年前

    我们在聊天中有一个不同的Ajax轮询解决方案:

    请求将发送到服务器并轮询 服务器端 在有很短延迟间隔的循环中(比如0.5秒)。一个数据被获取,请求返回。然后立即向服务器发送下一个请求。所有请求的超时时间都设置为60秒,当它过期而没有获得数据时,下一个请求将替换它。

        4
  •  1
  •   Diodeus - James MacFarlane    16 年前

    没有真正的限制,除了您期望用来负担服务器负载的同时用户的数量。通过跟踪平均响应时间,您可能可以在客户端动态地对此进行调优。

    为了正确地做到这一点,在相当大的负载下,你用 Comet .