-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Description
Currently, solid-select renders all available options into the DOM as soon as the dropdown opens. With large option sets (e.g., 500+ items), this results in noticeable performance drops — especially during opening and scrolling.
Problem:
- All options are rendered at once, regardless of whether they are visible.
- This leads to unnecessary DOM updates and memory usage.
- Users experience UI lag, particularly on lower-end devices or mobile browsers.
Expected behavior:
- Only the visible subset of options (plus a small buffer) should be rendered in the DOM.
- Non-visible options should remain virtual and not occupy DOM space ("windowing").
Suggested solution:
- Integrate @solid-primitives/virtual to enable virtualized option rendering.
- Optionally allow users to override the default option list component to implement their own virtualization logic.
Benefits:
- Significantly improved performance for large datasets.
- Reduced DOM node count and rendering overhead.
- Better user experience on all devices.
Example scenario:
Rendering 1,000 options currently results in 1,000 DOM nodes. With virtualization, only around 10–15 visible items would be rendered at any given time.
Metadata
Metadata
Assignees
Labels
No labels