为什么需要去抖动时间?
Why is debounce time needed?
我正在我的应用程序的数据 table 中实现搜索功能。为此,我找到了一个教程,我可以在其中添加 debounceTime,这样搜索就不会立即发生(在我的示例中为 150 毫秒)。
这样做的目的是什么?
我问的原因是,当我将去抖动时间从 150 毫秒更改为 0 时,搜索似乎更加顺畅 "nicer"。
我的猜测是,对于运行时还是服务器更好?这是一个微不足道的问题,但仍然唤醒了我的好奇心,以便更好地理解一般编码以及我的情况 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;
});
}
主要在自动执行搜索的搜索输入中需要去抖动时间。您不希望仅在完成键入后在键入的每个字母后搜索 运行。仅当从第一次调用该函数开始有 x 次该函数想要再次调用时,去抖动才会运行该函数。
300 毫秒的去抖时间就可以了。
您还可以在此处阅读有关油门以及去抖动和油门之间的区别的信息:throttle vs debounce
我正在我的应用程序的数据 table 中实现搜索功能。为此,我找到了一个教程,我可以在其中添加 debounceTime,这样搜索就不会立即发生(在我的示例中为 150 毫秒)。
这样做的目的是什么?
我问的原因是,当我将去抖动时间从 150 毫秒更改为 0 时,搜索似乎更加顺畅 "nicer"。
我的猜测是,对于运行时还是服务器更好?这是一个微不足道的问题,但仍然唤醒了我的好奇心,以便更好地理解一般编码以及我的情况 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;
});
}
主要在自动执行搜索的搜索输入中需要去抖动时间。您不希望仅在完成键入后在键入的每个字母后搜索 运行。仅当从第一次调用该函数开始有 x 次该函数想要再次调用时,去抖动才会运行该函数。
300 毫秒的去抖时间就可以了。
您还可以在此处阅读有关油门以及去抖动和油门之间的区别的信息:throttle vs debounce