如何立即运行javascript函数,但不允许该函数再次运行x秒?
以下操作会添加一个延迟,但它会触发函数disableKeyboardDateinputTest倍数。
function disableKeyboardDateinputTimer() {
setTimeout(function(){
disableKeyboardDateinputTest();
}, 1000);
}
disableKeyboardDateinputTest();
window.addEventListener('resize', disableKeyboardDateinputTimer);
答案 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/