实现虚拟滚动通常并不是非常复杂的事情,但是我们需要考虑到很多细节问题。在具体实现之前我思考了一个比较有意思的事情,为什么虚拟滚动能够优化性能。我们在浏览器中进行
DOM操作的时候,此时这个
DOM是真正存在的吗,或者说我们在
PC上实现窗口管理的时候,这个窗口是真的存在的吗。那么答案实际上很明确,这些视图、窗口、
DOM等等都是通过图形化模拟出来的,虽然我们可以通过系统或者浏览器提供的
API来非常简单地实现各种操作,但是实际上些内容是系统帮我们绘制出来的图像,本质上还是通过外部输入设备产生各种事件信号,从而产生状态与行为模拟,诸如碰撞检测等等都是系统通过大量计算表现出的状态而已。