我正在我的应用程序的数据表中实现搜索功能。为此,我找到了一个教程,可以在其中添加debounceTime,这样搜索不会立即发生(在我的示例中为150毫秒)。
这样做的目的是什么?
我问的原因是,当我将反跳时间从150毫秒更改为0时,搜索似乎更加顺畅和“更精细”。
我的猜测是,对于运行时还是服务器更好?这是一个微不足道的问题,但仍然使我好奇,希望能更好地理解一般的编码,在我的角度是Angular。
fromEvent(this.filter.nativeElement, 'keyup') .pipe( takeUntil(this._unsubscribeAll), debounceTime(150), distinctUntilChanged(), ) .subscribe(() => { if (!this.dataSource ) { return; } this.dataSource.filter = this.filter.nativeElement.value; }); }
Udi Mazor.. 5
去抖时间主要在自动执行搜索的搜索输入中需要。您不希望仅在完成键入后才在键入的每个字母之后运行搜索。仅在从第一次调用该函数开始,已经有x次该函数要再次调用时,防抖操作该函数。
300ms的反跳时间将解决问题。
您还可以在此处阅读有关节气门以及去抖和节气门之间的区别:节气门与去抖
去抖时间主要在自动执行搜索的搜索输入中需要。您不希望仅在完成键入后才在键入的每个字母之后运行搜索。仅在从第一次调用该函数开始,已经有x次该函数要再次调用时,防抖操作该函数。
300ms的反跳时间将解决问题。
您还可以在此处阅读有关节气门以及去抖和节气门之间的区别:节气门与去抖