Speculative prefetch of resources across page loads
Abstract
A plurality of sets of information is received, wherein each set of information indicates dependent resources of a corresponding referred web content, wherein each set of information is collected in response to the corresponding referred web content having been loaded on one of one or more client devices. The received sets of information associated with the corresponding referred web content are used to update a list of candidate prefetchable resources for a referring web content that refers to the corresponding referred web content. A request requesting for a list of prefetchable resources is received from a requestor, wherein the request is associated with loading the referring web content on the requestor's client device. One or more resources from the list of candidate prefetchable resources are selected as prefetchable resources based on one or more criteria. One or more identifiers identifying the one or more selected resources are sent.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method for identifying prefetchable resources, comprising:
receiving a plurality of sets of information, wherein each set of information indicates dependent resources of a corresponding referred web content, wherein each set of information is collected in response to the corresponding referred web content having been loaded on one of one or more client devices; using the received sets of information associated with the corresponding referred web content to update a list of candidate prefetchable resources for a referring web content that refers to the corresponding referred web content; receiving, from a requestor on a client device, a request requesting for a list of prefetchable resources, wherein the request is associated with loading the referring web content on the client device; selecting one or more resources from the list of candidate prefetchable resources as prefetchable resources associated with the referring web content based on one or more criteria; and sending to the requestor one or more identifiers identifying the one or more selected resources.
2 . The method of claim 1 , further comprising:
for each of the one or more client devices:
injecting a virtualization client on a web browser running on the client device by adding JavaScript client code to a webpage, wherein the webpage is sent to the web browser, and wherein each set of information collected on the client device is collected by the virtualization client, and wherein the virtualization client comprises the requestor.
3 . The method of claim 1 , wherein each set of information is collected after the webpage has completed loading.
4 . The method of claim 1 , wherein each set of information is collected by accessing the PerformanceResourceTiming API.
5 . The method of claim 1 , wherein each set of information includes identifiers of the dependent resources, a start and an end loading time corresponding to each dependent resource, and an identifier of the referring web content.
6 . The method of claim 1 , wherein the plurality of sets of information is received from a publish-subscribe messaging system that stores the sets of information sent from the one or more client devices.
7 . The method of claim 1 , wherein selecting the one or more resources further comprises:
for a resource on the list of candidate prefetchable resources:
determining a probability of the resource being a dependent resource that will need to be downloaded to a web browser of the client device when the web browser transits from the referring web content to one or more subsequent referred web content; and
comparing the probability with a predetermined threshold percentage and selecting the resource in the event that the probability is above the predetermined threshold percentage, wherein one of the one or more criteria requires that the probability be above the predetermined threshold percentage.
8 . The method of claim 1 , further comprising: filtering a resource from being selected as a prefetchable resource in the event that the resource is determined to be a non-cacheable resource.
9 . The method of claim 1 , further comprising:
determining, among the list of candidate prefetchable resources for the referring web content, a plurality of resources that forms a critical path, wherein the plurality of resources forming the critical path comprises a sequence of resources that are sequentially downloaded and that take the longest total time to download, and wherein the total time to download the plurality of resources forming the critical path is determined based on the sets of information.
10 . The method of claim 9 , wherein selecting the one or more resources further comprises:
for a resource on the list of candidate prefetchable resources:
determining whether the resource is one of the resources forming the critical path, and selecting the resource in the event that the resource is one of the resources forming the critical path, wherein one of the one or more criteria requires that the selected resource be forming the critical path.
11 . A system for identifying prefetchable resources, comprising:
a processor configured to:
receive a plurality of sets of information, wherein each set of information indicates dependent resources of a corresponding referred web content, wherein each set of information is collected in response to the corresponding referred web content having been loaded on one of one or more client devices;
use the received sets of information associated with the corresponding referred web content to update a list of candidate prefetchable resources for a referring web content that refers to the corresponding referred web content;
receive, from a requestor on a client device, a request requesting for a list of prefetchable resources, wherein the request is associated with loading the referring web content on the client device
select one or more resources from the list of candidate prefetchable resources as prefetchable resources associated with the referring web content based on one or more criteria; and
send to the requestor one or more identifiers identifying the one or more selected resources; and
a memory coupled to the processor and configured to provide the processor with instructions.
12 . The system of claim 11 , the processor is further configured to:
for each of the one or more client devices:
inject a virtualization client on a web browser running on the client device by adding JavaScript client code to a webpage, wherein the webpage is sent to the web browser, and wherein each set of information collected on the client device is collected by the virtualization client, and wherein the virtualization client comprises the requestor.
13 . The system of claim 11 , wherein each set of information is collected after the webpage has completed loading.
14 . The system of claim 11 , wherein each set of information is collected by accessing the PerformanceResourceTiming API.
15 . The system of claim 11 , wherein each set of information includes identifiers of the dependent resources, a start and an end loading time corresponding to each dependent resource, and an identifier of the referring web content.
16 . The system of claim 1 , wherein the plurality of sets of information is received from a publish-subscribe messaging system that stores the sets of information sent from the one or more client devices.
17 . The system of claim 11 , wherein selecting the one or more resources further comprises:
for a resource on the list of candidate prefetchable resources:
determining a probability of the resource being a dependent resource that will need to be downloaded to a web browser of the client device when the web browser transits from the referring web content to one or more subsequent referred web content; and
comparing the probability with a predetermined threshold percentage and selecting the resource in the event that the probability is above the predetermined threshold percentage, wherein one of the one or more criteria requires that the probability be above the predetermined threshold percentage.
18 . The system of claim 11 , wherein the processor is further configured to:
filter a resource from being selected as a prefetchable resource in the event that the resource is determined to be a non-cacheable resource.
19 . The system of claim 11 , wherein the processor is further configured to:
determine, among the list of candidate prefetchable resources for the referring web content, a plurality of resources that forms a critical path, wherein the plurality of resources forming the critical path comprises a sequence of resources that are sequentially downloaded and that take the longest total time to download, and wherein the total time to download the critical path is determined based on the sets of information.
20 . The system of claim 19 , wherein selecting the one or more resources further comprises:
for a resource on the list of candidate prefetchable resources:
determining whether the resource is one of the resources forming the critical path, and selecting the resource in the event that the resource is one of the resources forming the critical path, wherein one of the one or more criteria requires that the selected resource be forming the critical path.
21 . A computer program product for identifying prefetchable resources, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:
receiving a plurality of sets of information, wherein each set of information indicates dependent resources of a corresponding referred web content, wherein each set of information is collected in response to the corresponding referred web content having been loaded on one of one or more client devices; using the received sets of information associated with the corresponding referred web content to update a list of candidate prefetchable resources for a referring web content that refers to the corresponding referred web content; receiving, from a requestor on a client device, a request requesting for a list of prefetchable resources, wherein the request is associated with loading the referring web content on the client device; selecting one or more resources from the list of candidate prefetchable resources as prefetchable resources associated with the referring web content based on one or more criteria; and sending to the requestor one or more identifiers identifying the one or more selected resources.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.