【问题标题】:Minimum time between subsequent AJAX calls后续 AJAX 调用之间的最短时间
【发布时间】:2010-09-20 01:41:09
【问题描述】:

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

【问题讨论】:

    标签: javascript html ajax


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      除了您希望给服务器负载带来负担的同时用户数量之外,没有真正的限制。您可能可以通过跟踪平均响应时间在客户端动态调整它。

      为了正确执行此操作,在适当的负载下,您将使用Comet 进行投注。

      【讨论】:

      • 动态调整也可以在服务器上进行(它可能最了解它的过载程度),在返回值上以“不要在 N 毫秒内给我回电”成员的形式。但是,是的,如果您的服务器/框架能够有效地支持 Comet 式交互,则它是理想的选择。
      【解决方案3】:

      这取决于应用程序,但对于聊天,您可能希望经常轮询 - 我会说 1 到 4 秒。您可以做的是动态更改轮询间隔以减少服务器负载 - 如果一分钟内没有人说任何话,则增加至 10 秒……5 分钟后增加至 30 秒 - 诸如此类。

      【讨论】:

        【解决方案4】:

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

        1. 每次轮询发送多少数据
        2. 您一次将有多少用户在线
        3. 您的服务器可以处理多少带宽
        4. 您的客户端上的数据需要有多“新鲜”

        如果不了解您的应用的任何这些细节,就很难给出好的建议。您是否研究过客户端连接到服务器的方法,并且服务器保持连接打开直到有可用数据?然后服务器传递数据,客户端立即重新连接并再次等待。开始工作可能会很棘手,但您可以通过这种方式最大限度地提高带宽效率和响应能力。

        【讨论】:

          猜你喜欢
          • 2012-10-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-04
          • 1970-01-01
          相关资源
          最近更新 更多