-
Notifications
You must be signed in to change notification settings - Fork 134
Closed
Labels
performanceImprove performanceImprove performance
Description
Large amounts of data (5,000+ thoughts) causes the app to load very slowly from IndexedDB. Instead of loading the data all at once (loadLocalState), load the data and render in stages only the thoughts that are within a few steps from the cursor. The thoughtIndex and contextIndex will then serve as a cache of thoughts rather than a complete index.
Thoughts should be loaded in two stages. The first stage is the most critical as it is the "time-till-first-load" that most affects the user's perception of the loading time.
- Load
expandedthoughts and their children. - Load children, grandchildren, and great grandchildren.
After the initial load, thoughts should be swapped out as follows:
- When the
cursormoves, recalculateexpandedand load thoughts as described above for the newcursor. - Show “Loading...” in place of children that are still loading (also on startup).
- Delete least recently accessed thoughts when they exceed a configurable cache size.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
performanceImprove performanceImprove performance