I have a mobile application that supports offline usage, but can also work online. There are several pages of content (mostly long lists of items) that are loaded from server when user visits specific page and connection to server is available. The data is then cached and next time it is displayed using SWR strategy: we display stale cached data (if available) when user visits the page, then load the fresh data from the server and update the page.
Now my question is: how to better update page content so that the user is interrupted as little as possible? What are some known approaches? There are only two solutions I can think of right now, and both have their limitations:
- Just replace the content of the page when it arrives. Downside: user may be in the middle of scrolling the list and the refresh will be very unexpected at this point
- Show a message that new data arrived and allow a manual refresh. Downside: user may be dissatisfied that he has to manually refresh all the time
I know the answer heavily depends on the type of data displayed, how it is displayed, how often it changes, etc. But I wanted to know some basic rules how to decide what to do in which of the cases for the least possible user interruption.
In my specific case there are lists that are updated infrequently like something set up by admin users in an admin tool, and there are lists updated more frequently, like some end-user generated data. There often may be content created by one user and visible to others.