Cache list of options in Issuable sidebar in client-side cache to improve perceived performance
Originally proposed by @pedroms.
Problem to solve
Every time a user edits the labels on an Issue or Merge Request, the list os requested from the server.
This delay in presenting the options could be circumvented with a client side cache whether in localStorage (preferable) or sessionStorage.
Further details
The goal is to provide a close-to-instant feeling when triggering the labels (but could apply to any part of the issuable)
(Include use cases, benefits, and/or goals)
Proposal
A potential approach would be:
if not in cache and TTL still valid
request from network
display options
store in client side cache
else
display options
request from network
update in client side cache with reasonable TTL (1 day?)
update displayed options, if need be
end
What does success look like, and how can we measure that?
Immediate display of options for labels (MVC), potentially spread out to milestones, assignees, etc.
Links / references
(Note: issuables is cross-Create/Plan so labelling both for awareness)