IP Library Granted Patent US 10,645,143
Granted Patent B1
US 10,645,143 · App. 16/227,685 · Granted May 5, 2020

Static tracker

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,645,143
App. No.
16/227,685
Granted
May 5, 2020
Kind
B1
Abstract

The present invention relates to systems, apparatus, and methods of scanning a response to a first HTTP request for a web page in order to identify a web object for prefetching, and using a static tracker to identify and improve results. In one potential alternative embodiment, after a response is scanned a web object may be prefetched to a proxy server prior to a browser requesting the web object. The proxy server may observe one or more HTTP requests that are associated with the response to the first HTTP request for the web page and measure the success of the prefetching. After success is measured for the specific instance of the web object and the web page, a success rate for prefetching or not prefetching the web object as associated with the web page may be updated.

Claims (42)

1. A computer-implemented method comprising:

determining probabilities that web objects will be requested as part of a web page transaction for a web page based on requests for the respective web object during prior web page transactions for the web page;

receiving, by a computing device, a request for a first web object as a part of a first web page transaction to obtain and render the web page;

identifying, by the computing device, one or more child web objects to be prefetched as a part of the web page transaction based on the request and the probabilities;

in response to identifying one or more child web objects to be prefetched, issuing one or more prefetch requests for the one or more child web objects to be prefetched.

2. The computer-implemented method of claim 1 , wherein the first web object comprises a root request for the web page.

3. The computer-implemented method of claim 1 , wherein the request comprises a child request for a child object of the web page.

4. The computer-implemented method of claim 1 , wherein the probabilities are based on a number times the respective web object was requested during the prior web page transactions for the web page.

5. The computer-implemented method of claim 1 , wherein receiving the request for the first web object comprises intercepting the request for the first web object.

6. The computer-implemented method of claim 1 , further comprising:

receiving a request for a second web object; and

in response to determining the second web object has previously been prefetched, transmitting a prefetched copy of the second web object in response to the request for the second web object.

7. The computer-implemented method of claim 1 , wherein

identifying one or more child web objects to be prefetched is further based on a file size of a respective child web object or a link congestion.

8. The computer-implemented method of claim 1 , wherein identifying one or more child web objects to be prefetched to prefetch is further based on an expected benefit to page load time of the web page based on prefetching the respective child web object.

9. The computer-implemented method of claim 1 , wherein the probabilities are associated with a first user.

10. The computer-implemented method of claim 1 , wherein the probabilities are based on a number times the respective child web object was requested during the prior web page transactions for the web page.

11. The computer-implemented method of claim 1 , further comprising accessing a prefetch model associated with the web page, and wherein identifying the one or more child web objects to be prefetched as a part of the web page transaction is further based on the prefetch model.

12. A device comprising:

a non-transitory computer-readable medium; and

a processor communicatively coupled to the non-transitory computer-readable medium, the processor configured to execute processor-executable instructions stored in the non-transitory computer-readable medium to:

determine probabilities that web objects will be requested as part of a web page transaction for a web page based on requests for a respective web object during prior web page transactions for the web page;

receive a request for a first web object as a part of a first web page transaction to obtain and render the web page;

identify one or more child web objects to be prefetched as a part of the web page transaction based on the request and the probabilities;

in response to identification of one or more child web objects to be prefetched, issue one or more prefetch requests for the one or more child web objects to be prefetched.

13. The device of claim 12 , wherein the first web object comprises a root request for the web page.

14. The device of claim 12 , wherein the request comprises a child request for a child object of the web page.

15. The device of claim 12 , wherein the probabilities are based on a number times the respective web object was requested during the prior web page transactions for the web page.

16. The device of claim 12 , wherein the processor configured to execute processor-executable instructions stored in the non-transitory computer-readable medium to intercept the request for the first web object.

17. The device of claim 12 , the processor configured to execute processor-executable instructions stored in the non-transitory computer-readable medium to:

receive a request for a second web object; and

in response to a determination that the second web object has previously been prefetched, transmit a prefetched copy of the second web object in response to the request for the second web object.

18. The device of claim 12 , wherein the processor configured to execute processor-executable instructions stored in the non-transitory computer-readable medium to identify the one or more child web objects to be prefetched is further based on a file size of a respective child web object or a link congestion.

19. The device of claim 12 , wherein the processor configured to execute processor-executable instructions stored in the non-transitory computer-readable medium to identify the one or more child web objects to be prefetched further based on an expected benefit to page load time of the web page based on prefetching the respective child web object.

20. The device of claim 12 , wherein the probabilities are associated with a first user.

21. The device of claim 12 , wherein the probabilities are based on a number times the respective child web object was requested during the prior web page transactions for the web page.

22. The device of claim 12 , wherein the processor configured to execute processor-executable instructions stored in the non-transitory computer-readable medium to access a prefetch model associated with the web page, and identify the one or more child web objects to be prefetched as a part of the web page transaction further based on the prefetch model.

23. A non-transitory computer-readable medium comprising processor-executable instructions configured to cause a processor to:

determine probabilities that web objects will be requested as part of a web page transaction for a web page based on requests for the respective web object during prior web page transactions for the web page;

receive a request for a first web object as a part of a first web page transaction to obtain and render the web page;

identify one or more child web objects to be prefetched as a part of the web page transaction based on the request and the probabilities;

in response to identification of one or more child web objects to be prefetched, issue one or more prefetch requests for the one or more child web objects to be prefetched.

Assignments (12)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 64176/0566 Recorded Jun 6, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
To: VIASAT, INC.
Reel/Frame 071510/0382 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2025
From: MUFG BANK, LTD., AS AGENT
To: VIASAT, INC.
Reel/Frame 071321/0001 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 059332/0558 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0152 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 063822/0446 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: VIASAT, INC.
To: SNAPPI HOLDCO, INC.
Reel/Frame 070293/0483 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: SNAPPI HOLDCO, INC.
To: SNAPPI, INC.
Reel/Frame 070293/0879 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Sep 19, 2023
From: VIASAT, INC.
To: MUFG BANK, LTD., AS AGENT
Reel/Frame 064948/0379 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Jun 29, 2023
From: VIASAT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 064176/0566 →
SECURITY AGREEMENT Recorded Jun 1, 2023
From: VIASAT, INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 063822/0446 →
SECURITY AGREEMENT Recorded Mar 7, 2022
From: VIASAT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 059332/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2019
From: LEPESKA, PETER; SEBASTIAN, WILLIAM B
To: VIASAT, INC.
Reel/Frame 048857/0641 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2019
From: LEPESKA, PETER; SEBASTIAN, WILLIAM B.
To: VIASAT, INC.
Reel/Frame 048515/0757 →