activitywatch icon indicating copy to clipboard operation
activitywatch copied to clipboard

Query Caching

Open ErikBjare opened this issue 2 years ago • 2 comments

I've thought about adding proper caching of queries to make browsing historical data much snappier, after the first open.

The goal is to:

  • make the day/week/month selector (simple barchart at top) load faster
  • make the "Timeline (Barchart)" load faster

As a first step, I've considered adding query caching to aw-client-js such that queries are:

  • cached by timespan
  • if timespan spans the future, don't cache
  • only cached if the query returned data for the timespan

Should be a simple improvement, that could massively improve responsiveness and thus general UX of web UI, especially when browsing historical data.

I'm not sure what kind of cache expiry to add, but I might figure that out as I get going.

PRs:

  • https://github.com/ActivityWatch/aw-client-js/pull/44
  • https://github.com/ActivityWatch/aw-webui/pull/501

ErikBjare avatar Nov 15 '23 09:11 ErikBjare

Now added basic caching, which gets invalidated on page reload. Significantly speeds up browsing around different dates.

Also found a bunch of requests that weren't needed, reducing the total number of requests significantly.

We can consider persisting the cache with some expiry mechanism in the future, to make it reload past dates superfast, even after page reloads.

ErikBjare avatar Nov 15 '23 12:11 ErikBjare