IP Library Granted Patent US 9,813,480
Granted Patent B2
US 9,813,480 · App. 14/757,908 · Granted Nov 7, 2017

Placeholders for dynamic components in HTML streaming

Inventors: Hariharan Kolam (Palo Alto, CA); Sharad Jaiswal (Bangalore, IN); Mohammad H. Reshadi (Sunnyvale, CA)
Assignee: Instart Logic, Inc.
H04L67/02G06F17/30902H04L67/2823H04L67/2842H04L67/2847H04L67/32H04L67/42
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 9,813,480
App. No.
14/757,908
Granted
Nov 7, 2017
Kind
B2
Abstract

A method of speeding up the delivery of a dynamic webpage is disclosed. A request for a webpage is received, the webpage including one or more dynamic components. A cached stub is sent in response to the request, wherein the cached stub includes components empirically determined as static components of the webpage, and wherein the cached stub includes a placeholder replacing at least a portion of a first dynamic component of the webpage. A script is injected in the cached stub that intercepts any access to the placeholder.

Claims (49)

1. A method of speeding up the delivery of a dynamic webpage, comprising:

receiving from a client device a request for a webpage, the webpage including one or more dynamic components;

sending to the client device a cached stub in response to the request, wherein the cached stub includes components empirically determined as static components of the webpage, and wherein the cached stub includes a placeholder replacing at least a portion of a first dynamic component of the webpage; and

injecting a script in the cached stub that intercepts any access to the placeholder by a second script running on the client device.

2. The method of claim 1 , wherein the script causes a reloading of the webpage in response to an interception of an access to the placeholder.

3. The method of claim 1 , further comprising:

empirically determining that the portion of the first dynamic component replaced by the placeholder changes across multiple requests for the webpage; and

empirically determining that a second portion of the first dynamic component not replaced by a placeholder stays unchanged across multiple requests for the webpage.

4. The method of claim 1 , wherein the portion of the first dynamic component replaced by the placeholder corresponds to a value of an attribute.

5. The method of claim 1 , wherein the placeholder replacing the at least a portion of the first dynamic component of the webpage comprises an empty string.

6. The method of claim 1 , further comprising:

forwarding the request for the webpage to an origin server;

receiving the webpage from the origin server;

extracting an updated value of the portion of the first dynamic component from the webpage received from the origin server; and

sending an instruction to replace the placeholder with the extracted updated value.

7. The method of claim 1 , wherein the script invokes a function of a virtualization client, and wherein the virtualization client includes a DOM (Document Object Model) virtualization layer added on top of a DOM.

8. The method of claim 1 , wherein the cached stub includes only components that are located in the head section of the webpage.

9. A system for speeding up the delivery of a dynamic webpage, comprising:

a processor configured to:

receive from a client device a request for a webpage, the webpage including one or more dynamic components;

send to the client device a cached stub in response to the request, wherein the cached stub includes components empirically determined as static components of the webpage, and wherein the cached stub includes a placeholder replacing at least a portion of a first dynamic component of the webpage; and

inject a script in the cached stub that intercepts any access to the placeholder by a second script running on the client device; and

a memory coupled to the processor and configured to provide the processor with instructions.

10. The system of claim 9 , wherein the script causes a reloading of the webpage in response to an interception of an access to the placeholder.

11. The system of claim 9 , wherein the processor is further configured to:

empirically determine that the portion of the first dynamic component replaced by the placeholder changes across multiple requests for the webpage; and

empirically determine that a second portion of the first dynamic component not replaced by a placeholder stays unchanged across multiple requests for the webpage.

12. The system of claim 9 , wherein the portion of the first dynamic component replaced by the placeholder corresponds to a value of an attribute.

13. The system of claim 9 , wherein the placeholder replacing the at least a portion of the first dynamic component of the webpage comprises an empty string.

14. The system of claim 9 , wherein the processor is further configured to:

forward the request for the webpage to an origin server;

receive the webpage from the origin server;

extract an updated value of the portion of the first dynamic component from the webpage received from the origin server; and

send an instruction to replace the placeholder with the extracted updated value.

15. The system of claim 9 , wherein the script invokes a function of a virtualization client, and wherein the virtualization client includes a DOM (Document Object Model) virtualization layer added on top of a DOM.

16. The system of claim 9 , wherein the cached stub includes only components that are located in the head section of the webpage.

17. A computer program product for speeding up the delivery of a dynamic webpage, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving from a client device a request for a webpage, the webpage including one or more dynamic components;

sending to a client device a cached stub in response to the request, wherein the cached stub includes components empirically determined as static components of the webpage, and wherein the cached stub includes a placeholder replacing at least a portion of a first dynamic component of the webpage; and

injecting a script in the cached stub that intercepts any access to the placeholder by a second script running on the client device.

18. The computer program product recited in claim 17 , wherein the script causes a reloading of the webpage in response to an interception of an access to the placeholder.

19. The computer program product recited in claim 17 , further comprising computer instructions for:

empirically determining that the portion of the first dynamic component replaced by the placeholder changes across multiple requests for the webpage; and

empirically determining that a second portion of the first dynamic component not replaced by a placeholder stays unchanged across multiple requests for the webpage.

20. The computer program product recited in claim 17 , further comprising computer instructions for:

forwarding the request for the webpage to an origin server;

receiving the webpage from the origin server;

extracting an updated value of the portion of the first dynamic component from the webpage received from the origin server; and

sending an instruction to replace the placeholder with the extracted updated value.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2020
From: INSTART LOGIC, INC.
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 052175/0621 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2016
From: KOLAM, HARIHARAN; JAISWAL, SHARAD; RESHADI, MOHAMMAD H.
To: INSTART LOGIC, INC.
Reel/Frame 037996/0468 →
Continuity (2)
Provisional Application 62101134 · Jan 8, 2015
Related Publication 20160205213A1 · Jul 14, 2016