Yogesh Bhusara
All experiments

23 / SCROLL BEHAVIOR

Virtualized Overscan

The problem

Rendering only exactly-visible rows means fast scrolls outrun rendering and flash blank gaps.

The solution

An overscan buffer renders rows just outside view; adaptive overscan grows the buffer during fast scroll.

Experiment

Task: Scroll the long list quickly.

NO OVERSCAN
0000Row item 1
0001Row item 2
0002Row item 3
0003Row item 4
0004Row item 5
0005Row item 6
0006Row item 7
rendered7
range0–7
overscan0
OVERSCAN
0000Row item 1overscan
0001Row item 2overscan
0002Row item 3overscan
0003Row item 4overscan
0004Row item 5
0005Row item 6
0006Row item 7
0007Row item 8
0008Row item 9
0009Row item 10
0010Row item 11
0011Row item 12overscan
0012Row item 13overscan
0013Row item 14overscan
0014Row item 15overscan
rendered15
range0–15
overscan4

Play with the values

4
1.5

How it works

Seen in

Data grids

Thousands of rows scroll smoothly by rendering only a window plus buffer.

Chat history

Long message lists stay performant without blank gaps.

File explorers

Huge directories render just what's near the viewport.

Feeds

Infinite content lists keep memory low while scrolling fast.

References