IP Library › Granted Patent US 11,620,141
Granted Patent B2
US 11,620,141 · App. 16/924,318 · Granted Apr 4, 2023

Client side browser-based caching for monitored resources

Inventors: Itamar Azulay (Mishmar Ayyalon, IL); Amir Geri (Modi'in, IL); Guy Lewin (New York City, NY); Yossi Haber (Gannei Tikva, IL); Meir Baruch Blachman (Ramat-Gan, IL)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F9/451G06F8/38G06F11/302G06F16/957H04L63/12
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 11,620,141
App. No.
16/924,318
Granted
Apr 4, 2023
Kind
B2
Abstract

Methods and systems are provided for a browser in a client device that receives a user interface script-code snippet from a web page. A chain logic engine determines whether an in-memory map indicates an output value of prior execution of the UI script-code snippet. If the in-memory map does indicate the output value, it is returned from the in-memory map to generate the user interface. If not, the engine determines whether an in-local storage map indicates the prior executed snippet output. If the in-local storage map indicates the prior executed snippet output, it is returned from the in-local storage map to generate the user interface, and it is stored in the in-memory map. If not, the UI script-code snippet is executed to generate the output value, which is used to generate the user interface, and is stored in the in-memory map and in the in-local storage map.

Claims (79)

1. A system in a browser in a client device, comprising:

a processor; and

a memory device, the memory device storing program code to be executed by the processor, the program code comprising:

a script-code snippet manager that receives a user interface (UI) script-code snippet from a web page during a current session;

the script-code snippet manager comprising a chain logic engine that:

determines whether an in-memory map indicates a stored output value of the UI script-code snippet generated by prior execution of the UI script-code snippet; and

in response to determining the in-memory map does not indicate the stored output value of the UI script-code snippet, determines whether an in-local storage map for the browser indicates the stored output value of the UI script-code snippet generated by prior execution of the UI script-code snippet; wherein

in response to determining the in-local storage map does not indicate the output value of the UI script-code snippet, the script-code snippet manager further:

controls execution of the UI script-code snippet for the current session to generate the output value of the UI script-code snippet, and

stores the output value in the in-memory map and in the in-local storage map.

2. The system of claim 1 , wherein the chain logic engine further:

in response to determining the in-memory map does indicate the stored output value of the UI script-code snippet, returns the output value of the UI script-code snippet from the in-memory map for use in the current session; or

in response to determining the in-local storage map does indicate the output value of the UI script-code snippet, returns the output value of the UI script-code snippet from the in-local storage map for use in the current session and store the output value in the in-memory map.

3. The system of claim 2 , wherein the browser:

retrieves the output value of the UI script-code snippet indicated by the in-memory map or the in-local storage map; and

generates a user interface of the web page based on the retrieved output value of the UI script-code snippet; wherein

the retrieved output value of the UI script-code snippet comprises a prior executed portion of the web page; and

said generate a user interface of the web page based on the retrieved output value of the UI script-code snippet is performed faster than generating the user interface based on said control execution of the UI script-code snippet for the current session to generate the output value of the script-code snippet.

4. The system of claim 1 , wherein the execution of the UI script-code snippet is performed by the browser.

5. The system of claim 1 , further comprising:

a rendering-cost logic engine that:

determines a cost of performing the execution of the UI script-code snippet; and

compares the cost to a cost threshold; and

a server rendering manager that:

transmits the UI script-code snippet to a server device for performing the execution of the script-code snippet in response to the cost having a predetermined relationship to the cost threshold; and

receives the output value of the UI script-code snippet from the server device.

6. The system of claim 1 , further comprising a key generator that:

generates a key by performing a process on the UI script-code snippet and:

uses the key for said determining whether an in-memory map indicates a stored output value of the UI script-code snippet; or

uses the key for said determining whether an in-local storage map for the browser indicates the stored output value of the UI script-code snippet.

7. The system of claim 1 , wherein the UI script-code snippet is persistently available in the in-local storage map after reloading the web page or after reboot of the client device.

8. The system of claim 1 , wherein the current session of the web page is a client side monitored session.

9. The system of claim 1 , wherein execution of the UI script-code snippet translates the UI script-code snippet to a monitored UI script-code snippet for enforcing security policies by the browser.

10. The system of claim 2 , wherein the script-code snippet manager further:

in response to the return of the output value of the UI script-code snippet from the in-local storage map or the store of the output value in the in-local storage map:

updates in the in-local storage map, for a user, a usage parameter that corresponds to the output value of the UI script-code snippet.

11. The system of claim 1 , wherein the browser further:

in response to an initial rendering of the web page in a browser session:

purges data from the in-local storage map for a user of the web page based on past usage of the data by the user to make storage available for storing at least one additional output value of a UI script-code snippet.

12. A method in a browser in a client device, comprising:

receiving a user interface (UI) script-code snippet from a web page during a current session;

determining whether an in-memory map indicates a stored output value of the UI script-code snippet generated by prior execution of the UI script-code snippet;

in response to determining the in-memory map does not indicate the stored output value of the UI script-code snippet, determining whether an in-local storage map for the browser indicates the stored output value of the UI script-code snippet generated by prior execution of the UI script-code snippet; and

in response to determining the in-local storage map does not indicate the output value of the UI script-code snippet:

controlling execution of the UI script-code snippet for the current session to generate the output value of the UI script-code snippet, and

storing the output value in the in-memory map and in the in-local storage map.

13. The method of claim 12 , further comprising:

in response to determining the in-memory map does indicate the stored output value of the UI script-code snippet, returning the output value of the UI script-code snippet from the in-memory map for use in the current session; or

in response to determining the in-local storage map does indicate the output value of the UI script-code snippet, returning the output value of the UI script-code snippet from the in-local storage map for use in the current session and storing the output value in the in-memory map.

14. The method of claim 13 , further comprising;

retrieving the output value of the UI script-code snippet indicated by the in-memory map or the in-local storage map; and

generating a user interface of the web page based on the retrieved output value of the UI script-code snippet;

wherein the retrieved output value of the UI script-code snippet comprises a prior executed portion of the web page; and

said generating a user interface of the web page based on the retrieved output value of the UI script-code snippet is performed faster than generating the user interface based on said controlling execution of the UI script-code snippet for the current session to generate the output value of the script-code snippet.

15. The method of claim 12 , further comprising:

determining a cost of performing the execution of the UI script-code snippet;

comparing the cost to a cost threshold;

transmitting the UI script-code snippet to a server device for performing the execution of the script-code snippet in response to the cost having a predetermined relationship to the cost threshold; and

receiving the output value of the script-code snippet from the server device.

16. The method of claim 12 , further comprising generating a key by performing a process on the UI script-code snippet and:

using the key for said determining whether an in-memory map indicates a stored output value of the UI script-code snippet; or

using the key for said determining whether an in-local storage map for the browser indicates the stored output value of the UI script-code snippet.

17. The method of claim 12 , wherein execution of the UI script-code snippet translates the UI script-code snippet to a monitored UI script-code snippet for enforcing security policies by the browser.

18. A computer-readable medium having program code recorded thereon that when executed by at least one processor causes the at least one processor to perform a method, the method comprising:

receiving a user interface (UI) script-code snippet from a web page during a current session;

determining whether an in-memory map indicates a stored output value of the UI script-code snippet generated by prior execution of the UI script-code snippet;

in response to determining the in-memory map does not indicate the stored output value of the UI script-code snippet, determining whether an in-local storage map for the browser indicates the stored output value of the UI script-code snippet generated by prior execution of the UI script-code snippet; and

in response to determining the in-local storage map does not indicate the output value of the UI script-code snippet:

controlling execution of the UI script-code snippet for the current session to generate the output value of the UI script-code snippet,

generating a user interface of the web page based on the generated output value of the UI script-code snippet; and

storing the output value in the in-memory map and in the in-local storage map.

19. The computer-readable medium of claim 18 , further comprising:

in response to determining the in-memory map does indicate the stored output value of the UI script-code snippet, returning the output value of the UI script-code snippet from the in-memory map for use in the current session; or

in response to determining the in-local storage map does indicate the output value of the UI script-code snippet, returning the output value of the UI script-code snippet from the in-local storage map for use in the current session and storing the output value in the in-memory map.

20. The computer-readable medium of claim 19 , further comprising:

retrieving the output value of the UI script-code snippet indicated by the in-memory map or the in-local storage map; and

generating a user interface of the web page based on the retrieved output value of the UI script-code snippet;

wherein the retrieved output value of the UI script-code snippet comprises a prior executed portion of the web page; and

said generating a user interface of the web page based on the retrieved output value of the UI script-code snippet is performed faster than generating the user interface based on said controlling execution of the UI script-code snippet for the current session to generate the output value of the script-code snippet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2020
From: AZULAY, ITAMAR; GERI, AMIR; LEWIN, GUY; HABER, YOSSI; BLACHMAN, MEIR BARUCH
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 053166/0350 →
Continuity (1)
Related Publication 20220012070A1 · Jan 13, 2022