Improve rendering of very large folders in the Repository File Browser by adding a stopping point for rendering files
Problem to solve
When listing the files of very large folders (thousands of files and folders), the Vue Repository Browser will attempt to render ALL of them in sequence.
The truth is, resources are limited and at a certain point, the tab freezes and crashes. :(
As can be seen in the forgeperf.com analysis of https://gitlab.com/ddevault/linux/-/tree/master/arch/arm/boot/dts
Intended users
- Delaney (Development Team Lead)
- Sasha (Software Developer)
- Devon (DevOps Engineer)
- Sidney (Systems Administrator)
- Sam (Security Analyst)
- Rachel (Release Manager)
- Alex (Security Operations Engineer)
- Simone (Software Engineer in Test)
- Allison (Application Ops)
- Priyanka (Platform Engineer)
- Dana (Data Analyst)
User experience goal
Allow user to explore the long list of folders without freezing the browser.
Proposal
- Introduce a stopping point at which we stop rendering the files and display: "Load more files" call to action.
- That call to action will trigger requesting an extra X amount of files / the rest (potential to break the browser again but a good first step)
Further details
It will stop the browsers from crashing while rendering content the user is not even seeing.
Pitfalls: it might break the native "Find in this page" feature, but we already have the fuzzy file finder as a workaround.
Permissions and Security
Documentation
Availability & Testing
What does success look like, and how can we measure that?
A better score in performance metrics / forgeperf.
What is the type of buyer?
Any client concerned about better performance.
Is this a cross-stage feature?
No, entirely groupsource code.