【发布时间】:2010-09-20 01:41:09
【问题描述】:
在需要定期轮询服务器的 AJAX 应用程序(如聊天应用程序)中,建议两次调用之间的最短时间是多少,以便尽快完成更新?什么时间被认为是服务器和客户端的猪?
【问题讨论】:
标签: javascript html ajax
在需要定期轮询服务器的 AJAX 应用程序(如聊天应用程序)中,建议两次调用之间的最短时间是多少,以便尽快完成更新?什么时间被认为是服务器和客户端的猪?
【问题讨论】:
标签: javascript html ajax
我们在聊天中有不同的 AJAX 轮询解决方案:
请求被发送到服务器,并以非常短的延迟间隔(如 0.5 秒)循环轮询 服务器端上的数据。一个数据被获取,请求返回。然后下一个请求立即发送到服务器。所有请求的超时设置为 60 秒,当它过期而没有获取数据时,下一个请求将替换它。
【讨论】:
除了您希望给服务器负载带来负担的同时用户数量之外,没有真正的限制。您可能可以通过跟踪平均响应时间在客户端动态调整它。
为了正确执行此操作,在适当的负载下,您将使用Comet 进行投注。
【讨论】:
这取决于应用程序,但对于聊天,您可能希望经常轮询 - 我会说 1 到 4 秒。您可以做的是动态更改轮询间隔以减少服务器负载 - 如果一分钟内没有人说任何话,则增加至 10 秒……5 分钟后增加至 30 秒 - 诸如此类。
【讨论】:
这个问题的答案很大程度上取决于:
如果不了解您的应用的任何这些细节,就很难给出好的建议。您是否研究过客户端连接到服务器的方法,并且服务器保持连接打开直到有可用数据?然后服务器传递数据,客户端立即重新连接并再次等待。开始工作可能会很棘手,但您可以通过这种方式最大限度地提高带宽效率和响应能力。
【讨论】: