NETWORK APPLICATION PERFORMANCE ENHANCEMENT USING SPECULATIVE EXECUTION
First Claim
1. A computer-implemented method of reducing user-perceived latency of network transmissions between a server and a client, the method comprising:
- copying a portion of a current browser state to create a speculative browser state that includes an event handler;
generating a speculative event handler from the event handler that directs resultants of the event handler to the speculative browser state;
executing the speculative event handler;
identifying speculative content that may be transmitted between the server and the client in response to the execution of the speculative event handler;
transmitting the speculative content between the server and the client for storage in a cache; and
retrieving speculatively fetched data from a local cache when the user later triggers the 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.
102 Citations
20 Claims
-
1. A computer-implemented method of reducing user-perceived latency of network transmissions between a server and a client, the method comprising:
-
copying a portion of a current browser state to create a speculative browser state that includes an event handler; generating a speculative event handler from the event handler that directs resultants of the event handler to the speculative browser state; executing the speculative event handler; identifying speculative content that may be transmitted between the server and the client in response to the execution of the speculative event handler; transmitting the speculative content between the server and the client for storage in a cache; and retrieving speculatively fetched data from a local cache when the user later triggers the speculated-upon event. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An application program interface to enable speculative execution and data transfer of speculative content between a server and a client, the application program interface being embodied on a computer-readable medium and having processes for performing the following functions:
-
identifying an event handler in web content made available to a client from a server over a network; executing the event handler in a speculative browser state to determine a resultant of the event handler, the resultant including a request for additional content over the network; transmitting the additional content as speculative content between the client and the server when the resultant of the event handler requires the additional content; and storing the speculative content in cache for access by a browser on the client when a user triggers the event handler. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. One or more computer-readable 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; creating a copy of at least a portion of the browser state as a speculative browser state that includes the event handler; modifying the event handler to perform actions within the speculative browser state; and executing the event handler prior to user input to determine an action of the event handler. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification