为什么需要去抖动时间?

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