UI Screen Prefetch Refresh for Stale Cache Avoidance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Caching of user interface screens in software applications leads to stale data when underlying data is modified, causing unnecessary resource expenditure and user inconvenience due to the need for unnecessary refreshes.
Innovation Solution
A software application tracks previously viewed user interface screens and identifies stale subsets, incrementally prefetching the next expected screen to be revisited, ensuring updated content is available without additional network calls.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the server device regenerates and transmits updated versions of all previously viewed UI screens when data is modified, then data consistency is improved, but computing and communication resources are wasted
Solution Approach 1:
The system performs preliminary actions by proactively identifying and prefetching only the specific UI screens that will be needed next, rather than updating all previously viewed screens. The refresh controller predicts which screens the user is likely to revisit and pre-loads those specific screens with updated data, avoiding unnecessary computation and communication for screens that won't be viewed.
Solution Approach 2:
The system applies local quality by differentiating between UI screens that need updating and those that don't. Instead of uniformly updating all cached screens, the refresh controller selectively updates only the subset of screens predicted to be revisited, optimizing resource allocation based on local needs rather than applying a blanket update approach.
2Speed
If UI screens are cached to improve responsiveness, then access speed is improved, but data staleness occurs when underlying data is modified
Solution Approach 1:
The system performs preliminary refreshing of UI screens before the user actually requests them. When data is modified, the refresh controller proactively identifies which cached screens will be needed next and pre-loads their updated versions, so that when the user navigates to those screens, the data is already fresh and no additional waiting is required.
Solution Approach 2:
The system dynamically adjusts the refresh strategy based on user navigation patterns and data modification events. The refresh controller continuously monitors which screens are likely to be revisited and adaptively prefetches updated versions, creating a dynamic balance between maintaining data freshness and preserving cache benefits for rapid access.
3Reliability
If all UI screens are refreshed when data is modified, then data consistency is ensured, but user wait time increases
Solution Approach 1:
The system performs preliminary actions by prefetching updated UI screens in advance before the user requests them. When data is modified, the refresh controller identifies which screens will be needed next and proactively loads their updated versions from the server, so that when the user navigates to those screens, the data is already available and up-to-date without causing user-perceived wait time.
Solution Approach 2:
The system skips the unnecessary step of updating all UI screens by directly prefetching only the specific screens predicted to be revisited. This selective approach rushes through the essential update task for only the relevant screens, avoiding the time-consuming process of updating every cached screen while still ensuring data consistency for screens the user will actually view.
Data Source
AI summary
An embodiment may include determining user interface (UI) screens of an application that have been navigated to by way of a UI of the application. The embodiment may also include receiving an interaction with a UI component of a current UI screen of the UI screens and, based on receiving the interaction, determining a next UI screen of the UI screens that is expected to be revisited after the current UI screen. The embodiment may additionally include, prior to receiving a request to navigate to the next UI screen, transmitting, to a server device, a query for an updated version of the next UI screen, receiving, from the server device, a response including the updated version of the next UI screen, and, based on receiving the request to navigate to the next UI screen, displaying, based on the response, the updated version of the next UI screen.


