我应该多久在一个计时器上发出一个Ajax请求?

时间:2018-01-30 14:05:56

标签: ajax

setInterval(function(){
// ajax request here
}, 9000);

我使用这样的脚本来检查数据库中的新通知并将它们显示在页面上,这样的事实是,对于每个用户,每隔几秒钟或每分钟执行一次检查,我想知道这是否会导致任何问题。表现问题。

向数据库发出如此多的请求是否可以,或者我应该以其他方式检查新通知?

2 个答案:

答案 0 :(得分:3)

您需要考虑两件事:

  • 需要更新的频率
  • 服务器能经常响应吗?

第一个,只有你能回答。

第二个主要取决于服务器必须为每个请求做多少工作,有多少并发用户,以及服务器硬件和网络连接有多好。

您当前的方法面临的最大风险是,如果服务器无法频繁响应,那么您将在飞行中同时发出请求。如果存在真正的性能问题,一旦达到最大同时HTTP请求限制,您最终可能会有一个等待从浏览器中出来的请求队列。

您可以将setTimeout放入请求的成功和错误处理程序,而不是每9秒发送一次,以降低此风险。

另一种方法是让服务器在通知可用时启动数据发送。您可以使用WebSockets执行此操作。

答案 1 :(得分:-1)

首先,您需要创建ajax函数并根据需要调用修复时间间隔 比如使用javascript函数Expire Web Content

setInterval