我有搜索栏(文本字段)组件,它会根据用户类型更新列表。问题是,对于用户输入的每个字符,列表都会更新,因此如果他们想写入Learn React
,列表会更改11次!我需要做一些延迟函数(updateList)调用的事情,比如说让它每1秒调用一次,即使它在一秒钟内被调用了很多次。任何建议。
我创建一个JSFIDLE来向您展示一个示例:
https://jsfiddle.net/kmo61q89/
学分归大卫·沃尔什所有(https://davidwalsh.name/javascript-debounce-function)
将此解盎司函数添加到代码中:
function debounce(func, wait, immediate) {
var timeout;
return function executedFunction() {
var context = this;
var args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
然后,在输入中添加事件侦听器:
var input = document.getElementById("myInput");
var searchFunction = debounce(function() {
console.log('seach code here')
}, 250);
input.addEventListener('keyup', searchFunction);
通过简单的方法,您可以做到这一点:
var debounceTimeout = null;
searchInput.on('change keyup', function(event){
clearTimeout(debounceTimeout);
debounceTimeout = setTimeout(searchEvents, 500);
});
你也可以通过很多方式来处理这个问题,比如用bool值设置一个变量,当成功时,让它为假,当搜索触发时,返回为真
问题内容: 我希望能够在指定的延迟后调用以下方法。在目标c中,有类似以下内容: android和java中的此方法是否等效?例如,我需要能够在5秒钟后调用一个方法。 问题答案: Kotlin Java
我正在尝试用Java做一些事情,我需要在while循环中等待/延迟几秒钟。 我想构建一个step sequencer,我是Java新手。有什么建议吗?
本文向大家介绍在 Swift (iOS)延迟后如何调用方法?,包括了在 Swift (iOS)延迟后如何调用方法?的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将看到如何使用Swift延迟方法调用。在这里,我们将看到如何以两种方式实现相同的目标, 所以我们开始吧 我们将在Playground中看到两个示例, 步骤1-打开Xcode→New Playground。 在第一种方法中,我们将使
延迟调用一个函数,直到当前调用堆栈已经清除。 使用 setTimeout() ,超时时间为1ms,将新事件添加到浏览器事件队列,并允许渲染引擎完成其工作。使用展开 (...) 运算符为函数提供任意数量的参数。 const defer = (fn, ...args) => setTimeout(fn, 1, ...args); // Example A: defer(console.log, 'a
Go 语言中没有提供其它面向对象语言的析构函数,但是 Go 语言提供了 defer 语句用于实现其它面向对象语言析构函数的功能 defer 语句常用于 释放资源、解除锁定 以及 错误处理 等 例如C语言中我们申请了一块内存空间,那么不使用时我们就必须释放这块存储空间 例如C语言中我们打开了一个文件,那么我们不使用时就要关闭这个文件 例如C语言中我们打开了一个数据库, 那么我们不使用时就要关闭这个数
问题内容: 如何在Python中进行时间延迟? 问题答案: 这是另一个示例,其中某件事大约每分钟运行一次: