首页 > 解决方案 > Setinterval 一次触发多次

问题描述

我有一个应用程序,我想每 5 秒检查一次 URL,所以我使用以下代码:

<script>

function checknow()
{

  $.get( "https://example.com", function(data) {
  console.log(data);
  });


}

setInterval(function(){
    
    console.log("time started...");
    checknow();
    
    
}, 5000); 

</script>

它在我的一台计算机上工作正常,但在另一台计算机上,它每 5 秒检查一次,但在 1 分钟后.. 30 秒内没有调用函数,突然一次调用函数 6 次。由于它是随机发生的,我无法调试。我有 50 个客户,只有大约 5 个客户报告这个问题。

有什么问题setInterval吗,或者有什么替代方法吗?

Ps:当我检查这个时,网页处于前台并处于活动状态。

标签: javascriptsetinterval

解决方案


您可以使用它setTimeout来更好地控制请求之间的时间。

function checknow(){
  $.get("https://example.com", function(data) {
      console.log(data);
      setTimeout(checknow, 5000);
  });
}
checknow();

推荐阅读