如果我们的数据库中有任何更新,我们希望每隔3秒检查一次,使用jquery $ .ajax。技术很清楚,但有没有理由不解雇这么多的ajax电话? (浏览器,缓存,性能等)。 Web应用程序每个客户端每天运行大约10小时。 我们正在使用Firefox。
答案 0 :(得分:1)
Ajax调用不会影响客户端(浏览器,...),但会影响服务器端。例如,每个ajax调用都是服务器上的命中。即。更多的带宽消耗,没有服务器请求命中增加反过来增加服务器负载等等.Ajax调用实际上意味着以服务器端影响为代价增加客户端友好性。
此致 拉维
答案 1 :(得分:1)
在实现无限重复的AJAX调用之前,你应该仔细考虑它们之间的任意延迟。你是怎么想出3秒的?如果您要以这种方式轮询服务器,则需要将请求频率降低到尽可能低的数量。以下是一些需要考虑的事项:
最重要的是,考虑使用HTML 5 web sockets将数据“推送”到客户端而不是轮询,大多数现代浏览器都支持此功能。如果Web套接字不可用,可以使用几个框架回退到轮询 - 一个优秀的.NET示例是SignalR。
答案 2 :(得分:0)
我每隔5秒就看到很多应用程序请求,例如远程控制(网络播放器)或聊天。因此浏览器不应该这样做。
一个好的做法是在发出新请求之前等待答案,这意味着不要使用setInterval来触发请求。 (如果用户失去连接,将阻止打开太多连接)。 同时验证在接收下一个答案时是否完成了与答案相关的所有计算。
如果您可以在服务器端访问该服务器,请将服务器配置为设置http标头Connection:Keep-Alive,这样您就不会为每个请求添加太多的TCP开销。这可以大大加快小额请求。
我看到的最后一点当然是验证服务器是否能够回答这么多请求。
答案 3 :(得分:0)
您正在寻找每3秒后的任何更改,这样,在短时间内持续获取数据时,流量会增加。它还可能会持续增加浏览器端的内存使用量。当您需要检查数据库中完成的任何更新时,您可以选择其他任何替代方案,如Sheepjax,Comet或SignalR。 (SignalR通常将数据广播给所有用户,而彗星需要许可证)。希望这可以帮到你。