javascript - 为什么setTimeout和setInterval运行得太快?

标签 javascript greasemonkey

function process(){
  window.location.reload(false);
}

function looping(){
  setTimeout(process(), 10000);
}

var looper = setInterval(looping(), 10000);

我尝试每 10 秒重新加载一次页面,但上面的代码会过于频繁地重新加载页面。为什么?

最佳答案

function process(){
  window.location.reload(false);
}

function looping(){
  setTimeout(process, 10000);
}

var looper = setInterval(looping, 10000);

尝试上面的代码。

在您的示例中,您只是调用回调函数,而不是向 setTimeout 和 setInterval 提供回调函数。只需提供函数名称及其固定

更新:函数是 JS 中的第一类对象。你可以将它传递给一个函数,从另一个函数返回一个函数等等......所以这些事情只需使用函数名称就可以完成(只是函数名称,就像任何其他变量名称一样)。 调用函数是使用括号完成的,您错误地调用了该函数,而不是将函数传递给 setTimeout

你可以完全摆脱 setTimeout 并按如下所示操作

function process(){
      window.location.reload(false);
}       

var looper = setInterval(process, 10000);  

关于javascript - 为什么setTimeout和setInterval运行得太快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34987427/

相关文章:

javascript - 双击 HTML 中的链接时防止默认的单击事件

javascript - 来自@require 脚本的@grant GM 函数

php - 在没有 FTP 访问权限的情况下在实时站点上本地保存自定义 HTML?

firefox - Greasemonkey 无法识别且无法安装本地脚本

javascript - 任何 backbone.js 书籍可用吗?

javascript - ajax 调用完成后如何在 .scroll() 事件中运行函数?

javascript - Rails 删除链接有点太多了,为什么?

javascript - 唯一的元素 ID,即使元素没有

javascript - 在 Angular ng-show 中使用类似 linq 的表达式

javascript - Angular : Update data every few seconds