Skip to content

dashboard: Add progressive loading to results tree rendering

Loading and rendering the whole html tree results was quite slow on very large projects (12s on linux kernel ~300k files and ~30k directories), also the load time was the same at the very first visit of the page or when getting back or reloading the results page.

This version introduce two mechanisms to tackle those issues:

  • caching
  • progressive rendering

Caching is done with Flask-Caching python module and is quite efficient in our case as I have generally observed x6 rendering time.

Progressive rendering has been done that way:

  • on first /results visit render only the top directory level
  • on click of a directory that may contain children, call an api endpoint that returns the needed html sub tree and inject it to the dom

With progressive and caching rendering the results page for the linux kernel renders in less than 0.04s. Rendering sub tree through api is fast, navigating the tree is smooth, better user experience than previously.

It's a follow-up of !111 (merged)

Merge request reports