我正在我的应用程序的数据表中实现搜索功能。为此,我找到了一个教程,可以在其中添加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;
});
}
答案 0 :(得分:4)
反跳时间主要是在自动执行搜索的搜索输入中需要的。您不希望仅在完成键入后才在键入的每个字母之后运行搜索。仅在从第一次调用该功能开始,已经有x次该功能再次调用时,防抖功能才会操作该功能。
去抖动时间为300ms即可解决问题。
您还可以在此处了解有关油门以及防抖和油门之间的区别:throttle vs debounce