Demo 3

Virtualize 100,000 rich rows in JavaScript

This page ships very little row HTML. It keeps the dataset in JavaScript and reuses a small pool of row nodes so startup stays light and scrolling work stays bounded.

Back

Generating profile data and mounting the initial recycled row window.

100,000 Total names
0 Live list items
Render strategy
Loading... Initial load time

The scroll height still represents 100,000 rows, but the live DOM only contains a recycled slice around the viewport.

    How this version behaves

    Startup profile

    The initial HTML stays small because row markup is not shipped in the document. Most startup work is JS execution plus the first recycled node pool.

    Scrolling model

    A fixed set of DOM nodes is reused for different records as you scroll. The viewport moves through data instead of mounting a new row for every item.

    Main tradeoff

    This is usually the fastest startup model here, but it depends on JavaScript to synthesize content instead of letting the browser parse prebuilt HTML.