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

我的网页中有一个字段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); 
 var update; // something happened clearTimeout(update); update = setTimeout(thisFunction, 10000);