javascript - 如何在 Javascript/jQuery 中重置超时?

标签 javascript jquery timeout polling

我的网页中有一个字段 A,当用户编辑该字段时,会调用 API 调用(使用 jQuery),更新字段 B。编辑后,应每 10 秒调用一次 API 以更新又是B场。我目前使用:

setTimeout(thisFunction, 10000);

问题是每次用户编辑字段 A 时都会设置此超时,这在编辑字段 A 几次后会导致多次设置超时和多次调用 API。这使网站看起来压力很大。

我更愿意做的是,每次编辑字段时设置一个新的超时,无论是通过用户编辑字段 A,还是通过达到 10 秒的间隔,从而轮询 API。换一种说法;如果字段 B 在 10 秒或更长时间内未更新,则应更新该字段。

最后,如果用户随后点击按钮 C,轮询应该停止。

所以我的问题;如果字段 B 未更新 10 秒或更长时间,我如何运行函数来更新字段 B 以及如何在我想停止轮询时(当用户单击另一个按钮时)欢迎所有提示!

最佳答案

可以使用 clearTimeout 取消计时器,因此:

var timer = null;
if (timer) {
    clearTimeout(timer); //cancel the previous timer.
    timer = null;
}
timer = setTimeout(thisFunction, 10000);

关于javascript - 如何在 Javascript/jQuery 中重置超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22181661/

相关文章:

javascript - 如何对JSON对象进行计数并在计数的基础上取相同的输出

javascript - Angular js : can't recognize ngTable in Controller

javascript - 在被调用函数中使用对象引用(this)

javascript - JQuery Lipsum 生成器不生成单词

php - AJAX url 调用上的多个 PHP 脚本

javascript - Prototype 中 Ajax 请求的默认全局超时是多少?

javascript - 流程图 - 如何在 x 轴上每月仅绘制 1 个刻度?

javascript - 为通用事件处理程序提供参数

Java:URLConnection 的合理超时时间

windows - Golang、net.TCPConn、SetReadTimeout?