My webapp includes a feature that showcases exhibitors at an expo. The user can click on "Exhibitors" in the navigation bar to access a page displaying all the exhibitors. Each exhibitor may have different details, some of which may or may not contain data (such as Booth, Videos, etc). To accommodate this variability, fixed row heights were eliminated for better UX.
The problem arises when there are over 500 exhibitors, causing the DOM to freeze while rendering them all. This process can take quite a bit of time, especially on mobile devices. Virtualization seems challenging without fixed row heights. I am now seeking ideas on how to enhance performance without significantly compromising the user experience.
Here's what I've experimented with so far:
- Batching the data-binding: Dividing the list into chunks and processing them through a queue with delays to prevent overwhelming execution.
- On-demand loading: Initially binding and rendering around 50 exhibitors, then dynamically loading and appending additional chunks as users scroll.
Any thoughts or suggestions would be greatly appreciated!