Network application performance enhancement using speculative execution
First Claim
1. A computer-implemented method of reducing latency of network transmissions of web content between a server and a client, the method comprising:
- copying at least a portion of a current browser state including an event handler to create a speculative browser state, the speculative browser state being created by implementing speculative computations using context pooling to avoid disruption of a user experience during a user interaction with the current browser state, the event handler being designated as including speculative content by employing a lazy cloning designation;
generating, from the event handler, a speculative event handler that directs resultants of the event handler to the speculative browser state;
executing the speculative event handler in the speculative browser state;
identifying the speculative content in response to the executing the speculative event handler;
transmitting the speculative content for storage in a cache;
uploading at least a portion of the transmitted speculative content from the client to the server in anticipation of a user-triggered upload; and
retrieving at least one portion of the transmitted speculative content after a user triggers a speculated-upon event.
2 Assignments
0 Petitions
Accused Products
Abstract
A speculative web browser engine may enable providing transmission of content between a server and a client prior to a user-initiated request for the content hidden in imperative code (event handlers), which may reduce user-perceived latency when the user initiates the imperative code. In some aspects, a speculative browser state may be created from an actual browser state and used to run the event handlers. The event handlers may be modified to direct actions of the event handler to update the speculative browser state. Speculative content may be transmitted between the server and the client in response to an execution of the modified code. The speculative content may be stored in a cache and made readily available for use when the user initiates the event handler and finds that the desired content has already been fetched.
40 Citations
16 Claims
-
1. A computer-implemented method of reducing latency of network transmissions of web content between a server and a client, the method comprising:
-
copying at least a portion of a current browser state including an event handler to create a speculative browser state, the speculative browser state being created by implementing speculative computations using context pooling to avoid disruption of a user experience during a user interaction with the current browser state, the event handler being designated as including speculative content by employing a lazy cloning designation; generating, from the event handler, a speculative event handler that directs resultants of the event handler to the speculative browser state; executing the speculative event handler in the speculative browser state; identifying the speculative content in response to the executing the speculative event handler; transmitting the speculative content for storage in a cache; uploading at least a portion of the transmitted speculative content from the client to the server in anticipation of a user-triggered upload; and retrieving at least one portion of the transmitted speculative content after a user triggers a speculated-upon event. - View Dependent Claims (2, 3)
-
-
4. A computer-implemented method for enabling speculative execution and data transfer of speculative content between a server and a client, the method comprising:
-
identifying an event handler in web content made available to the client from the server over a network, the event handler being designated as including the speculative content by employing a lazy cloning designation; implementing speculative computations using context pooling to create a speculative browser state and to avoid disruption of a user experience during a user interaction with a current browser state; executing the event handler in the speculative browser state to determine whether a resultant of the event handler includes a request for additional content over the network; transmitting the additional content as the speculative content between the client and the server after the resultant of the event handler requires the additional content, the transmitting the additional content comprising speculatively uploading the speculative content from the client to the server over the network; and storing the speculative content in a cache for storage. - View Dependent Claims (5, 6, 7, 8, 9, 10)
-
-
11. One or more computer storage media storing computer-executable instructions that, when executed on one or more processors, causes the one or more processors to performs acts comprising:
-
identifying a browser state having an event handler that is designated as including speculative content by employing a lazy cloning designation; creating a copy of at least a portion of the browser state as a speculative browser state that includes the event handler, the speculative browser state being created by implementing speculative computations using context pooling to avoid disruption of a user experience during a user interaction with a current browser state; modifying the event handler to direct actions to occur within the speculative browser state; executing the event handler in the speculative browser to determine the actions of the event handler prior to user input; and transmitting the speculative content between a client and a server when the actions of the event handler requires additional content, the transmitting the content comprising speculatively uploading the speculative content from the client to the server over the network; storing the additional content as the speculative content in a cache. - View Dependent Claims (12, 13, 14, 15, 16)
-
Specification