Settings page - Load addons lazily - #9037
Conversation
- Allow the first 15 items from the top of the list to display before continuing to populate it - Decrease the number of placeholders from 25 to 15
Happened if a category was selected while addonListObjs was still populating
|
In my testing with the CPU throttled the initial load is roughly on par with Vue 3! I do have a couple suggestions though:
|
Good idea for slower devices. Done.
All the placeholders trying to load while you're scrolling fast can be a hindrance, but I don't know of a simple way to fix this. Ending the list after a few unloaded items with "Loading more...", if that's what you meant by "a single loading message", would have to account for collapsed groups and the variable order of list items among other things. I played around with throttling (limiting how many can be loading at the same time), but the way I did it adds the items loading to a permanent queue, even if they go offscreen before they load. Let me know if you have any other ideas. At least a user can search, collapse groups, or filter to reduce the number of lazy items they have to scroll through. |
They were redundant after "Display unloaded items as placeholders"
Or a spinner. Either way I see now that it is not that easy to implement well. |
|
For those who haven't tried it out yet, here's what scrolling through unrendered items looks like with CPU throttling active: Scrolling.through.rendering.addons.mp4 |
Finally. Should help with #2531, something @WorldLanguages knows is pretty annoying.
Settings.page.top.load.in.0.3s.mp4
Description
This pull request changes two things which significantly contributed to the perceived loading time of the list of addon settings:
Now the addon settings UI responds much faster after loading the page or returning to the main categories after opening a Related Addons list. I challenge you to go back to how it was before after testing this out!
Here are the most notable side effects caused by each change:
Some code comments have also been clarified.
Notes
Tested on Edge 148.
Some changes to
addon-body.jswere based on carefully reviewed code generated by Claude Haiku 4.5 via GitHub Copilot.