IP Library › Granted Patent US 10,440,140
Granted Patent B2
US 10,440,140 · App. 15/098,231 · Granted Oct 8, 2019

Browser cache management

Inventors: Gavin Barraclough (Sunnyvale, CA); Antti Koivisto (Helsinki, FI); Christophe Dumez (Cupertino, CA)
Assignee: Apple Inc.
H04L67/2842H04L67/2847
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,440,140
App. No.
15/098,231
Granted
Oct 8, 2019
Kind
B2
Abstract

Disclosed herein is a technique for storing and managing a number of resources and sub-resources associated with web pages in a cache implemented by a web browser. Metadata associated with the sub-resources is captured and stored in the cache. The metadata can include relationship or dependency information associated with a main resource and the sub-resources associated with the main resource. The previously captured metadata is used to predict any sub-resources that will be needed to properly display the web page and the predicted sub-resources are requested from the web server concurrently with a request for the main resource associated with the web page.

Claims (64)

1. A method for predicting resources required to render web pages, the method comprising, at a mobile computing device on which a web browser is executing:

receiving a first request to load a main resource associated with a web page;

retrieving metadata associated with the main resource from a cache managed on the mobile computing device;

identifying, based on the metadata, a set of sub-resources associated with the main resource;

generating a prediction that a subset of the set of sub-resources will be needed to render the web page, wherein the subset includes at least one sub-resource included in the set; and

for each sub-resource in the subset:

obtaining the sub-resource from the cache in response to determining that (i) the sub-resource is stored in the cache, and (ii) a condition associated with the sub-resource is satisfied, otherwise

communicating, to a resource-based server, a respective request for the sub-resource.

2. The method of claim 1 , wherein the metadata comprises dependency information associated with the main resource and the set of sub-resources.

3. The method of claim 2 , further comprising:

receiving an initial request for the main resource prior to the first request; and

in response to the initial request:

generating the dependency information associated with the main resource and the set of sub-resources, and

saving the dependency information in the cache.

4. The method of claim 1 , wherein the resource-based server is a web server.

5. The method of claim 1 , further comprising:

determining whether the metadata associated with the main resource exists in the cache, and

performing the steps of retrieving, identifying, generating, and communicating in response to a determination that the metadata associated with the main resource exists in the cache.

6. The method of claim 1 , further comprising:

determining whether the at least one sub-resource included in the prediction was used to render the web page.

7. The method of claim 6 , further comprising:

updating the metadata associated with the main resource in response to a determination that the at least one sub-resource was used to render the web page.

8. The method of claim 7 , wherein updating the metadata further comprises:

updating a counter value associated with the at least one sub-resource.

9. A system, comprising:

a web server; and

a user device communicably coupled to the web server, wherein the user device executes a web browser configured to:

receive a first request to load a main resource associated with a web page;

retrieve metadata associated with the main resource, from a cache managed on the user device;

identify, based on the metadata, a set of sub-resources associated with the main resource;

generate a prediction that a subset of the set of sub-resources will be needed to render the web page, wherein the subset includes at least one sub-resource included in the set; and

for each sub-resource in the subset:

obtain the sub-resource from the cache in response to determining that (i) the sub-resource is stored in the cache, and (ii) a condition associated with the sub-resource is satisfied, otherwise

communicate, to a resource-based server, a respective request for the sub-resource.

10. The system of claim 9 , wherein the metadata comprises dependency information associated with the main resource and the set of sub-resources.

11. The system of claim 10 , wherein the user device is further configured to:

receive an initial request for the main resource prior to the first request; and

in response to the initial request:

generate the dependency information associated with the main resource and the set of sub-resources, and

save the dependency information in the cache.

12. The system of claim 10 , wherein the user device is further configured to:

determine whether the metadata associated with the main resource exists in the cache, and

perform the steps of retrieving, identifying, generating, and communicating in response to a determination that the metadata associated with the main resource exists in the cache.

13. The system of claim 10 , wherein the user device is further configured to:

determine whether the at least one sub-resource included in the prediction was used to render the web page.

14. The system of claim 13 , wherein the user device is further configured to:

update the metadata associated with the main resource in response to a determination that the at least one sub-resource was used to render the web page.

15. A non-transitory computer readable storage medium configured to store instructions that, when executed by a processor included in a user device, cause the user device to predict resources needed to render a web page, by carrying out steps that include:

receiving a first request to load a main resource associated with the web page;

retrieving metadata associated with the main resource from a cache managed on the user device;

identifying a set of sub-resources associated with the main resource based on metadata associated with the main resource;

generating a prediction that a subset of the set of sub-resources will be needed to render the web page, wherein the subset includes at least one sub-resource included in the set; and

for each sub-resource in the subset:

obtaining the sub-resource from the cache in response to determining that (i) the sub-resource is stored in the cache, and (ii) a condition associated with the sub-resource is satisfied, otherwise

communicating, to a resource-based server, a respective request for the sub-resource.

16. The non-transitory computer readable storage medium of claim 15 , wherein the resource-based server is a web server.

17. The non-transitory computer readable storage medium of claim 15 , wherein the metadata comprises dependency information associated with the main resource and the set of sub-resources.

18. The non-transitory computer readable storage medium of claim 15 , wherein the steps further include:

determining whether the metadata associated with the main resource exists in the cache, and

carrying out the steps of retrieving, identifying, generating, and communicating in response to a determination that the metadata associated with the main resource exists in the cache.

19. The non-transitory computer readable storage medium of claim 15 , wherein the steps further include:

determining whether the at least one sub-resource included in the prediction was used to render the web page.

20. The non-transitory computer readable storage medium of claim 19 , wherein the steps further include:

updating the metadata associated with the main resource in response to a determination that the at least one sub-resource was used to render the web page.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2016
From: BARRACLOUGH, GAVIN; KOIVISTO, ANTTI; DUMEZ, CHRISTOPHE
To: APPLE INC.
Reel/Frame 038282/0498 →
Continuity (2)
Provisional Application 62234572 · Sep 29, 2015
Related Publication 20170094004A1 · Mar 30, 2017
Cited By (1)
US 12,495,100