Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript和输入,以了解何时停止写入_Javascript_Html_Angularjs - Fatal编程技术网

javascript和输入,以了解何时停止写入

javascript和输入,以了解何时停止写入,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个搜索系统,但我不想要按钮搜索,相反,我想要当用户停止写入时,等待三秒钟,然后执行搜索 另一种方法是每次用户按下一个键,执行搜索,但是,这个想法太慢了。我的数据存储在json文件中,因此,搜索包含两个嵌套的forEach。如果再次按下用户键并调用搜索方法,如何停止搜索执行 我正在使用angular。您可以使用$.debounce方法延迟搜索方法的执行。你的情况是这样的 function searchFn(event) { // Perform an search on $(this).v

我有一个搜索系统,但我不想要按钮搜索,相反,我想要当用户停止写入时,等待三秒钟,然后执行搜索

另一种方法是每次用户按下一个键,执行搜索,但是,这个想法太慢了。我的数据存储在json文件中,因此,搜索包含两个嵌套的forEach。如果再次按下用户键并调用搜索方法,如何停止搜索执行


我正在使用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解决方案,这里指定了角度。我不好!我忽略了角的部分。太好了!这就是我要找的。谢谢!完美的这就是我要找的。谢谢!