运行javascript函数但不允许它重新运行x秒

时间:2016-09-23 11:52:07

标签: javascript

如何立即运行javascript函数,但不允许该函数再次运行x秒?

以下操作会添加一个延迟,但它会触发函数disableKeyboardDateinputTest倍数。

function disableKeyboardDateinputTimer() {
  setTimeout(function(){
    disableKeyboardDateinputTest();
  }, 1000);
}

disableKeyboardDateinputTest();
window.addEventListener('resize', disableKeyboardDateinputTimer);

2 个答案:

答案 0 :(得分:0)

如果你愿意使用Lodash,你可以使用它的throttle帮助。

  

创建一个限制函数,每个等待毫秒最多只调用一次func。

答案 1 :(得分:0)

防止函数被调用太多通常被称为“节流”。 lodash(和下划线)库具有节流函数https://lodash.com/docs/4.16.1#throttle。您可以像这样使用它:

2016-09-22

您需要考虑是否需要领先呼叫(第一次呼叫立即发生)和/或跟踪呼叫(如果在节流期间发生任何呼叫,则在该时段结束时会发生一次呼叫)。

这里有一篇关于这个主题的好文章:https://css-tricks.com/debouncing-throttling-explained-examples/