我们的主 UI 上有一个 UI 小部件,它使用 JavaScript 来响应来自浏览器的滚动事件。每个滚动事件的响应都是相对昂贵的。用户可以轻松地将大量滚动事件“排队”,而前几个正在处理并在小部件中呈现。
这样做的问题是,小部件最终进入“滚动处理炼狱”,每个增量中间滚动事件都被处理和呈现。
例如:用户从 ab 滚动,然后是 bc,然后是 de,然后是 ef,依此类推。到用户触发 yz 事件时,滚动事件处理可能仍在渲染 bc 滚动。
相反,我们想做的是对这些事件进行更智能的管理。如果我们可以渲染滚动事件的结果,然后“赶上”用户所在的位置,并跳过任何现在已经过时的中间滚动,那就太好了。
最好的方法是什么?