javascript和输入,以了解何时停止写入
我有一个搜索系统,但我不想要按钮搜索,相反,我想要当用户停止写入时,等待三秒钟,然后执行搜索 另一种方法是每次用户按下一个键,执行搜索,但是,这个想法太慢了。我的数据存储在json文件中,因此,搜索包含两个嵌套的forEach。如果再次按下用户键并调用搜索方法,如何停止搜索执行javascript和输入,以了解何时停止写入,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个搜索系统,但我不想要按钮搜索,相反,我想要当用户停止写入时,等待三秒钟,然后执行搜索 另一种方法是每次用户按下一个键,执行搜索,但是,这个想法太慢了。我的数据存储在json文件中,因此,搜索包含两个嵌套的forEach。如果再次按下用户键并调用搜索方法,如何停止搜索执行 我正在使用angular。您可以使用$.debounce方法延迟搜索方法的执行。你的情况是这样的 function searchFn(event) { // Perform an search on $(this).v
我正在使用angular。您可以使用$.debounce方法延迟搜索方法的执行。你的情况是这样的
function searchFn(event) {
// Perform an search on $(this).val();
};
$('input:text').keyup( $.debounce( 3000, searchFn) );
您可以使用$.debounce方法延迟搜索方法的执行。你的情况是这样的
function searchFn(event) {
// Perform an search on $(this).val();
};
$('input:text').keyup( $.debounce( 3000, searchFn) );
看看
我有这样的输入
<input type="text" ng-model="search" ng-model-options="{ updateOn: 'default blur', debounce: { default: 3000, blur: 0 } }">
看看
我有这样的输入
<input type="text" ng-model="search" ng-model-options="{ updateOn: 'default blur', debounce: { default: 3000, blur: 0 } }">
我建议300毫秒比3秒好。试试像这样的东西
<input ng-keyup="debouncedSubmit()" ng-model="myModel" />
你可以做得更优雅一些,使用一点函数式编程,编写debounce和submit,但我觉得这超出了这个问题的范围。我建议300毫秒比3秒好。试试像这样的东西
<input ng-keyup="debouncedSubmit()" ng-model="myModel" />
你可以用一点函数式编程和编写debounce和submit来做得更优雅一些,但我觉得这超出了这个问题的范围。你可以使用
setTimeout()
和clearTimeout()
…使用setTimeout()
要在他们停止键入1秒钟后开始搜索,然后在他们再次开始键入时使用clearTimeout()
然后再次使用setTimeout()
。您能否提供一个代码示例来说明您目前的想法?使用按键搜索非常简单,请尝试“输入”尽管如此,我还是要避免第二种想法,如果您的搜索功能仍在执行,按键将被阻止,直到完成为止(除非它是异步的),您可以使用setTimeout()
和cleartimout()
…使用setTimeout()
要在他们停止键入1秒钟后开始搜索,然后在他们再次开始键入时使用clearTimeout()
然后再次使用setTimeout()
。您能否提供一个代码示例来说明您目前的想法?使用按键搜索非常简单,请尝试“输入”尽管如此,我还是要避免第二种想法,如果您的搜索函数仍在执行,那么按键将被阻止,直到完成为止(除非它是异步的)。这是一个jQuery解决方案,这里指定了angular。我的坏!我忽略了角度部分。这是一个jQuery解决方案,这里指定了角度。我不好!我忽略了角的部分。太好了!这就是我要找的。谢谢!完美的这就是我要找的。谢谢!