Optimistic data fetching and rendering
First Claim
1. A method of managing data for graphical rendering, comprising:
- presenting, to a user by a client system, graphical content based on data stored in a local database, wherein the local database is substantially synchronized, via a server system, with a remote master database;
receiving, by the client system, a request for an update to the graphical content;
determining one or more changes to the data stored in the local database resulting from the request;
presenting, to the user before the one or more changes are synchronized with the remote master database, updated graphical content based on the one or more changes to enable the user to see a result of the one or more changes before the one or more changes are synchronized with the remote master database;
after presenting the updated graphical content, submitting, to the server system over a network for storage in the remote master data base, the one or more changes;
receiving a response from the server system indicating whether the one or more changes are successfully stored in the remote master database;
when the response indicates a success, saving the one or more changes in the local database; and
when the response indicates a failure, re-presenting the graphical content instead of the updated graphical content.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments are disclosed for fast data fetching and rendering. In some embodiments, in response to receiving a page display request, a system constructs a static, possibly nested query for retrieving all the data to be rendered for the page and stores the query result in a data store. For a future page display request, the system similarly constructs a query and determines whether the query can be resolved from the data store. If not, the system constructs a “diff query” to fetch only the missing data. In some embodiments, in response to a subsequent page update request, the system retrieves from the server all the data likely to be viewed or updated and renders the data changes corresponding to the requested update. The system then submits the data changes to the server and undoes the rendering of the data changes when the server fails to process the data changes.
-
Citations
20 Claims
-
1. A method of managing data for graphical rendering, comprising:
-
presenting, to a user by a client system, graphical content based on data stored in a local database, wherein the local database is substantially synchronized, via a server system, with a remote master database; receiving, by the client system, a request for an update to the graphical content; determining one or more changes to the data stored in the local database resulting from the request; presenting, to the user before the one or more changes are synchronized with the remote master database, updated graphical content based on the one or more changes to enable the user to see a result of the one or more changes before the one or more changes are synchronized with the remote master database; after presenting the updated graphical content, submitting, to the server system over a network for storage in the remote master data base, the one or more changes; receiving a response from the server system indicating whether the one or more changes are successfully stored in the remote master database; when the response indicates a success, saving the one or more changes in the local database; and when the response indicates a failure, re-presenting the graphical content instead of the updated graphical content. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for managing data for graphical rendering, comprising:
-
a graphical user interface, including an input device and an output device; and a processor and memory, cooperating to function as; a first receiving unit configured to receive an input via the input device, wherein; the input is related to graphical content that is visible via the graphical user interface; the graphical content is based on data stored in a local data store; and the local data store is substantially synchronized, via a server system, with a remote master data store; a determining unit configured to determine one or more updates to the data stored in the local data store resulting from the input; a sending unit configured to present, to a user before the one or more updates are synchronized with the remote master data store, updated graphical content based on the one or more updates to the data stored in the local data store via the output device; a submitting unit configured to submit, after the presenting, the one or more updates to the server system over a network for storage in the remote master data store; a second receiving unit configured to receive a reply from the server system indicating whether the one or more updates are successfully stored in the remote master data store; a saving unit configured to save, when the reply indicates a success, the one or more updates in the local data store; and a resending unit configured to re-present, when the reply indicates a failure, the graphical content instead of the updated graphical content via the output device. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed, cause a computer to perform a method of managing data for graphical rendering, comprising:
-
instructions for presenting, to a user, graphical content based on data stored in a local database, wherein the local database is substantially synchronized, via a server system, with a remote master database; instructions for receiving, from the user, a request for an update to the graphical content; instructions for determining one or more changes to the data stored in the local database resulting from the request; instructions for presenting, to the user before the one or more changes are synchronized with the remote master database, updated graphical content based on the one or more changes to enable the user to see a result of the one or more changes before the one or more changes are synchronized with the remote master database; instructions for, after the presenting, submitting the one or more changes to the server system over a network for storage in the remote master database; instructions for receiving a response from the server system indicating whether the one or more changes are successfully stored in the remote master data base; instructions for, when the response indicates a success, saving the one or more changes in the local database; and instructions for, when the response indicates a failure, re-presenting the graphical content instead of the updated graphical content.
-
Specification