IP Library Granted Patent US 10,009,439
Granted Patent B1
US 10,009,439 · App. 14/098,453 · Granted Jun 26, 2018

Cache preloading

Inventor: Hariharan Kolam (Palo Alto, CA)
Assignee: Instart Logic, Inc.
H04L67/2847H04L67/2842H04L67/2852H04L67/42G06F12/0862G06F17/3028G06F17/30076H04L45/742
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,009,439
App. No.
14/098,453
Granted
Jun 26, 2018
Kind
B1
Abstract

Preloading a cache is disclosed. A requested web content is received. A priority order associated with one or more resources of the requested web content is determined. The cache of an application is preloaded with one or more resources of the requested web content in a loading order based at least in part on the determined priority order.

Claims (42)

1. A method of preloading a cache, comprising:

receiving, by an edge server, a requested web content, wherein:

the web content includes a replacement code for requesting one of a plurality of resources,

the replacement code replaces an HTML element requesting a same one of the plurality of resources, and

at least a portion of the requested web content is obtained from a content provider via a network;

processing, by an edge server, the received web content to convert a static resource request of the received web content to a dynamic resource request, wherein the dynamic resource request is intercepted and optimized by an injected client to add the replacement code in the requested web content;

determining, by the edge server, a priority order associated with a plurality of resources of the requested web content, wherein the priority order is determined based at least in part on: the optimized dynamic resource request, a size of each of the plurality of resources, and a maximum number of concurrent connections to the edge server allowed by an application; and

preloading, by the edge server, the cache of the application with a plurality of resources referenced by the requested web content in a loading order specified by the determined priority order.

2. The method of claim 1 , wherein the application is a web browser application.

3. The method of claim 1 , wherein the requested web content is received from a content provider referenced by a URL utilized to request the requested web content.

4. The method of claim 1 , wherein the requested web content is received from an intermediary server that obtained at least a portion of the requested web content using a URL of the requested web content.

5. The method of claim 1 , wherein the loading order specifies an order in which the plurality of resources should be requested.

6. The method of claim 1 , wherein determining the priority order includes receiving the priority order from a server that has predetermined the priority order for the requested web content.

7. The method of claim 1 , wherein the priority order was determined based at least in part on an order the a plurality of resources are requested in a code of the web content.

8. The method of claim 1 , wherein the priority order was determined based at least in part on an order the a plurality of resources are added to a Document Object Model of the web content.

9. The method of claim 1 , wherein the priority order was determined based at least in part on information about the a plurality of resources.

10. The method of claim 1 , wherein the priority order was determined based at least in part on relative amounts of visual space utilized by the plurality of resources.

11. The method of claim 1 , wherein the priority order was determined based at least in part on a utilized frequency of each of the a plurality of resources.

12. The method of claim 11 , wherein the utilized frequency of a resource is determined based at least on part on when the resource is added to a document object model (DOM) associated with the requested web content.

13. The method of claim 1 , wherein the priority order was determined based at least in part by profiling the plurality of resources during a previous rendering of the web content.

14. The method of claim 1 , wherein the loading order was determined based at least in part on a parameter of the application.

15. The method of claim 1 , wherein the loading order was determined based at least in part on an identification of the application.

16. The method of claim 1 , wherein the requested web content includes code for a client inserted after the web content was received from a content provider, and the client preloads the cache of the application.

17. The method of claim 16 , wherein the client intercepts a request for one of the plurality of resources and provides the requested one resource from the cache.

18. The method of claim 1 , wherein the loading order was determined based at least in part on a determined order in which to obtain the plurality of resources given the maximum number of concurrent connections allowed by the application, wherein a time to load the plurality of resources in the determined order is reduced compared with loading in an order different from the determined order.

19. A system for preloading a cache, comprising:

a communication interface configured to receive a requested web content from an edge server, wherein:

the web content includes a replacement code for requesting one of a plurality of resources,

the replacement code replaces an HTML element requesting a same one of the plurality of resources, and

at least a portion of the requested web content is obtained from a content provider via a network; and

a processor in the edge server, wherein the processor is coupled with the communication interface and configured to:

process the received web content to convert a static resource request of the received web content to a dynamic resource request, wherein the dynamic resource request is intercepted and optimized by an injected client to add the replacement code in the requested web content;

determine a priority order associated with a plurality of resources of the requested web content, wherein the priority order is determined based at least in part on: the optimized dynamic resource request, a size of each of the plurality of resources, and a maximum number of concurrent connections to a server allowed by an application; and

preload the cache of an application with a plurality of resources referenced by the requested web content in a loading order specified by the determined priority order.

20. A computer program product for preloading a cache, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving a requested web content from an edge server, wherein:

the web content includes a replacement code for requesting one of a plurality of resources,

the replacement code replaces an HTML element requesting a same one of the plurality of resources, and

at least a portion of the requested web content is obtained from a content provider via a network;

processing, by the edge server, the received web content to convert a static resource request of the received web content to a dynamic resource request, wherein the dynamic resource request is intercepted and optimized by an injected client to add the replacement code in the requested web content;

determining, by the edge server, a priority order associated with a plurality of resources of the requested web content, wherein the priority order is determined based at least in part on: the optimized dynamic resource request, a size of each of the plurality of resources, and a maximum number of concurrent connections to a server allowed by an application; and

preloading, by the edge server, the cache of an application with a plurality of resources referenced by the requested web content in a loading order specified by the determined priority order.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2020
From: INSTART LOGIC, INC.
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 052121/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2014
From: KOLAM, HARIHARAN
To: INSTART LOGIC, INC.
Reel/Frame 032176/0065 →