优化窗口上的Observable.fromEvent

时间:2017-04-09 22:40:01

标签: angular rxjs observable

在我的文件管理器UI中,每个文件项都在观察窗口Queue事件。只要文件项进入视口,文件项组件就会开始加载它的图像。当在单个页面上拥有大量文件时,这非常有用。但是我遇到了一个问题,我的应用程序会滞后于页面中显示的大约20多个文件。

wheel

有没有办法优化此订阅?

更新(30/05/2019): 这是实现我的意图的非常低效的方法。拥有一个侦听滚动事件的“中央”服务会更好,然后您的组件可以订阅/取消订阅该服务。不要在多个组件上设置相同的事件侦听器。

1 个答案:

答案 0 :(得分:3)

如果由于太多事件而需要限制请求数,请尝试使用debounceTime运算符。

  

https://rxjs-dev.firebaseapp.com/api/operators/debounce

Observable.fromEvent(window, 'wheel')
    .debounceTime(300)
    .subscribe(() => {
        console.log(window)
    })