Transactional autosave with local and remote lifecycles
First Claim
1. A non-transitory computer readable medium having instructions stored thereon that, when executed by a processor, cause the processor to perform autosave, the performing comprising:
- receiving, by a web browser of a client device, a user action performed by a user that interacts with a user interface for a website corresponding to a remote server, the user interface displayed by the web browser and the user action triggering an autosave functionality;
determining a change record corresponding to the user action;
queuing the change record in a first queue that is local to the client device to commit corresponding changes to a local client model, wherein the changes to the local client model comprise a change to a page schema and a change to a corresponding binding;
queuing the change record in a second queue that is local to the client device, that communicates with the server, and is independent of the first queue to persist the change record at the server, wherein the corresponding changes cause corresponding modifications to the user interface before the change record is persisted at the server, wherein at least one additional user action is received and its corresponding changes to the local client model are committed and cause corresponding modifications to the user interface before the change record is persisted at the server, wherein the change record is queued in duplicate on both the first queue and the second queue and the change record is dequeued from the first queue independently from the second queue;
processing, by the website within the web browser, the change record in the first queue independently of the change record in the second queue and applying the change record to the user interface;
communicating, to the server, the change record in the second queue independently of the change record in the first queue, the communicating causing the change record to be persisted at the server; and
when the change record saves a totality of a resource, removing previous change records to the resource from the first queue and the second queue, the change record identified by a unique type that represents the resource;
wherein the change record is first applied to a local lifecycle from the first queue to commit the changes to the local client model and then applied to a remote lifecycle from the second queue to the remote server.
1 Assignment
0 Petitions
Accused Products
Abstract
A system performs autosave. The system receives, by a web browser of a client device, a user action performed by a user that interacts with a website corresponding to a server. The system determines a change record corresponding to the user action, queues the change record in a first queue to commit corresponding changes to local models, and queues the change record in a second queue that communicates with the server to persist the change record at the serve. The first queue may be an ordered persistence queue that maintains a history of change records for performing undo and redo operations in interacting with the website. The second queue may be an ordered queue where change records are processed one at a time and each change record is sent to the server only if a prior change record in the second queue has been successfully recorded on the server.
-
Citations
20 Claims
-
1. A non-transitory computer readable medium having instructions stored thereon that, when executed by a processor, cause the processor to perform autosave, the performing comprising:
-
receiving, by a web browser of a client device, a user action performed by a user that interacts with a user interface for a website corresponding to a remote server, the user interface displayed by the web browser and the user action triggering an autosave functionality; determining a change record corresponding to the user action; queuing the change record in a first queue that is local to the client device to commit corresponding changes to a local client model, wherein the changes to the local client model comprise a change to a page schema and a change to a corresponding binding; queuing the change record in a second queue that is local to the client device, that communicates with the server, and is independent of the first queue to persist the change record at the server, wherein the corresponding changes cause corresponding modifications to the user interface before the change record is persisted at the server, wherein at least one additional user action is received and its corresponding changes to the local client model are committed and cause corresponding modifications to the user interface before the change record is persisted at the server, wherein the change record is queued in duplicate on both the first queue and the second queue and the change record is dequeued from the first queue independently from the second queue; processing, by the website within the web browser, the change record in the first queue independently of the change record in the second queue and applying the change record to the user interface; communicating, to the server, the change record in the second queue independently of the change record in the first queue, the communicating causing the change record to be persisted at the server; and when the change record saves a totality of a resource, removing previous change records to the resource from the first queue and the second queue, the change record identified by a unique type that represents the resource; wherein the change record is first applied to a local lifecycle from the first queue to commit the changes to the local client model and then applied to a remote lifecycle from the second queue to the remote server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of performing autosave, comprising:
-
receiving, by a web browser of a client device, a user action performed by a user that interacts with a user interface for a website corresponding to a remote server, the user interface displayed by the web browser and the user action triggering an autosave functionality; determining a change record corresponding to the user action; queuing the change record in a first queue that is local to the client device to commit corresponding changes to a local client model, wherein the changes to the local client model comprise a change to a page schema and a change to a corresponding binding; queuing the change record in a second queue that is local to the client device, that communicates with the server, and is independent of the first queue to persist the change record at the server, wherein the corresponding changes cause corresponding modifications to the user interface before the change record is persisted at the server, wherein at least one additional user action is received and its corresponding changes to the local client model are committed and cause corresponding modifications to the user interface before the change record is persisted at the server, wherein the change record is queued in duplicate on both the first queue and the second queue and the change record is dequeued from the first queue independently from the second queue; processing, by the website within the web browser, the change record in the first queue independently of the change record in the second queue and applying the change record to the user interface; communicating, to the server, the change record in the second queue independently of the change record in the first queue, the communicating causing the change record to be persisted at the server; and when the change record saves a totality of a resource, removing previous change records to the resource from the first queue and the second queue, the change record identified by a unique type that represents the resource; wherein the change record is first applied to a local lifecycle from the first queue to commit the changes to the local client model and then applied to a remote lifecycle from the second queue to the remote server. - View Dependent Claims (16, 17, 18, 20)
-
-
19. An autosave system comprising:
-
a processor; a storage device coupled to the processor that stores instructions that when executed by the processor implements modules comprising; a receiving module that receives, by a web browser of a client device, a user action performed by a user that interacts with a user interface for a website corresponding to a remote server, the user interface displayed by the web browser and the user action triggering an autosave functionality; a determining module that determines a change record corresponding to the user action; a first queuing module that queues the change record in a first queue that is local to the client device to commit corresponding changes to a local client model, wherein the changes to the local client model comprise a change to a page schema and a change to a corresponding binding; and a second queuing module that queues the change record in a second queue that is local to the client device, that communicates with the server, and is independent of the first queue to persist the change record at the server, wherein the corresponding changes cause corresponding modifications to the user interface before the change record is persisted at the server, wherein at least one additional user action is received and its corresponding changes to the local client model are committed and cause corresponding modifications to the user interface before the change record is persisted at the server, wherein the change record is queued in duplicate on both the first queue and the second queue and the change record is dequeued from the first queue independently from the second queue; the receiving module further processing, by the website within the web browser, the change record in the first queue independently of the change record in the second queue and applying the change record to the user interface, and communicating, to the server, the change record in the second queue independently of the change record in the first queue, the communicating causing the change record to be persisted at the server and when the change record saves a totality of a resource, removing previous change records to the resource from the first queue and the second queue, the change record identified by a unique type that represents the resource, wherein the change record is first applied to a local lifecycle from the first queue to commit the changes to the local client model and then applied to a remote lifecycle from the second queue to the remote server.
-
Specification