面临JavaScript AJAX调用问题,CPU内存使用率飙升

面临JavaScript AJAX调用问题,CPU内存使用率飙升,javascript,ajax,cpu-usage,Javascript,Ajax,Cpu Usage,使用JavaScript调用一个ajaxurl时,每隔2分钟调用一次 function tstat_run_request() { jQuery.get(`/ajax/url/table?page=${page}`, filter, function (e) { handler_interval = setInterval(function(){ clearInterval(handler_interval) tstat_run_re

使用JavaScript调用一个ajaxurl时,每隔2分钟调用一次

function tstat_run_request() {
  jQuery.get(`/ajax/url/table?page=${page}`, filter, function (e) {

    handler_interval = setInterval(function(){
            clearInterval(handler_interval)
            tstat_run_request()
        },120*1000)
  });
}
上面的函数在页面加载时调用,每2分钟调用一次

这是正常工作的预期,但与一些浏览器或一些问题,每周一次,我的服务器面临的是,它在几秒钟内运行了好几次

我配置了一个Nginx服务器,并检查了传入的请求。使用上面的ajaxurl,它会多次调用。这只会在一段时间内发生

我已经用不同类型的桌面和移动设备浏览器测试了这一点。但未能重现该问题

这个问题大约每周发生一次,我可以清楚地看到CPU的峰值高达80%(通常低于10%)

我只能通过注释代码来重现这一点

clearInterval
在上述代码中

有人能帮我解决这个问题吗?如何检测和解决这个问题


谢谢,

我不是100%肯定这会有帮助,但我认为
handler\u interval
应该用
var
声明。目前,它是一个全局变量(基于您发布的代码)。此外,由于您在第一次迭代时清除了间隔计时器,您也可以使用
setTimeout()
。@Pointy,代码也使用了此函数上方的handler\u interval变量。我应该将其声明为代码上方的var吗?如果使用
setTimeout()
您根本不需要它,因为
setTimeout()
只运行一次回调。但是,变量应始终显式声明。