# US 11,310,331 B2 · Optimizing user interface data caching for future actions

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,310,331 B2
- Document ID: US11310331B2
- Status: Granted
- Kind: B2
- Application number: 16/719,951
- Filed: 2019-12-18
- Published: 2020-04-23
- Granted: 2022-04-19
- Earliest claimed: 2016-12-28
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Fan Zhang; Peng Zhuang; Yi Meng
- Web page: https://patentgrep.com/patent/US11310331B2

## CPC

- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- G06F 3/0484: for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F 12/0813: with a network or matrix configuration
- H04L 67/04: specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
- H04L 67/125: involving control of end-device applications over a network
- H04L 67/306: User profiles
- H04W 4/60: Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
- G06F 2212/154: Networked environment
- G06F 2212/60: Details of cache memory
- G06F 2212/62: Details of cache specific to multiprocessor cache arrangements
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

The subject matter of this specification generally relates to pre-caching data for a predicted future action. In some implementations, a client device includes a data storage device having a cache that stores data received for one or more mobile applications and a data processing apparatus that communicates with the data storage device and a display. A user interface context can be determined for a given user interface being presented for a given application. A predicted next action that a user of the client device will perform at the given user interface can be determined based on the user interface context. Prior to detecting the predicted next action, a request for next action data that will be presented in response to the user performing the predicted next action can be transmitted over a network. The next action data can be received and stored in the cache.

## Claims

### Claim 1

A client device, comprising:
a display that presents user interfaces for one or more mobile applications;
a data storage device having a cache that stores data received over a data communication network for the one or more mobile applications; and
a data processing apparatus that communicates with the data storage device and the display, and performs operations comprising:
determining a predicted next action for requesting content that a user of the client device is predicted to perform at a given user interface of a web page being presented by the display;
determining that the predicted next action will utilize one or more scripts of a web application, executable by a web browser presenting the web page, to generate an updated user interface that presents the content within the web browser at the display in response to an occurrence of the predicted next action;
in response to determining that the predicted next action will utilize the one or more scripts of the web application to present the content at the display and prior to detecting the predicted next action,
obtaining, from another device different from the client device, the one or more scripts of the web application, and
obtaining the content prior to the occurrence of the predicted next action;
storing the one or more scripts and the content in the data storage device; and
generating and displaying, using the one or more scripts, the updated user interface including the content within the web browser in response to detecting the occurrence of the predicted next action.

### Claim 2 (depends on 1)

The client device of claim 1, wherein determining the predicted next action comprises:
determining, for each of a plurality of actions including the predicted next action, a probability that the action will be performed; and
determining that the probability for the predicted next action satisfies a threshold probability.

### Claim 3 (depends on 2)

The client device of claim 2, wherein the operations comprise obtaining respective computer-readable code for each action having a probability that satisfies the threshold.

### Claim 4 (depends on 2)

The client device of claim 2, wherein the probability for the predicted next action is based on a user interface context for the given user interface.

### Claim 5 (depends on 2)

The client device of claim 2, wherein the probability for the predicted next action is determined using one or more machine learning models.

### Claim 6 (depends on 5)

The client device of claim 5, wherein the one or more machine learning models are trained using historical action data specifying actions performed by users at the user interfaces.

### Claim 7 (depends on 1)

The client device of claim 1, wherein:
the predicted next action comprises requesting an electronic resource; and
the computer-readable code for the application comprises code for presenting content of the electronic resource.

### Claim 8 (depends on 2)

The client device of claim 2, wherein the probability for the predicted next action is based on a type of data being presented in the web page.

### Claim 9 (depends on 2)

The client device of claim 2, wherein the probability for the predicted next action is based on a tab of the given user interface that is currently being presented.

### Claim 10

A method performed by one or more data processing apparatus, the method comprising:
determining a predicted next action for requesting content that a user of a client device is predicted to perform at a given user interface of a web page being presented by a display of the client device;
determining that the predicted next action will utilize one or more scripts of a web application, executable by a web browser presenting the web page, to generate an updated user interface that presents the content within the web browser at the display in response to an occurrence of the predicted next action;
in response to determining that the predicted next action will utilize the one or more scripts of the web application to present the content at the display and prior to detecting the predicted next action,
obtaining, from another device different from the client device, the one or more scripts of the web application, and
obtaining the content prior to the occurrence of the predicted next action;
storing the one or more scripts and the content in a data storage device of the client device; and
generating and displaying, using the one or more scripts, the updated user interface including the content within the web browser in response to detecting the occurrence of the predicted next action.

### Claim 11 (depends on 10)

The method of claim 10, wherein determining the predicted next action comprises:
determining, for each of a plurality of actions including the predicted next action, a probability that the action will be performed; and
determining that the probability for the predicted next action satisfies a threshold probability.

### Claim 12 (depends on 11)

The method of claim 11, further comprising obtaining respective computer-readable code for each action having a probability that satisfies the threshold.

### Claim 13 (depends on 11)

The method of claim 11, wherein the probability for the predicted next action is based on a user interface context for the given user interface.

### Claim 14 (depends on 11)

The method of claim 11, wherein the probability for the predicted next action is determined using one or more machine learning models.

### Claim 15 (depends on 14)

The method of claim 14, wherein the one or more machine learning models are trained using historical action data specifying actions performed by users at the one or more user interfaces.

### Claim 16 (depends on 10)

The method of claim 10, wherein:
the predicted next action comprises requesting an electronic resource; and
the computer-readable code for the application comprises code for presenting content of the electronic resource.

### Claim 17

A non-transitory computer readable medium comprising instructions that, when executed by a data processing apparatus, cause the data processing apparatus to perform operations comprising:
determining a predicted next action for requesting content that a user of a client device is predicted to perform at a given user interface of a web page being presented by a display of the client device;
determining that the predicted next action will utilize one or more scripts of a web application, executable by a web browser presenting the web page, to generate an updated user interface that presents the content within the web browser at the display in response to an occurrence of the predicted next action;
in response to determining that the predicted next action will utilize the one or more scripts of the web application to present the content at the display and prior to detecting the predicted next action,
obtaining, from another device different from the client device, the one or more scripts of the web application, and
obtaining the content prior to the occurrence of the predicted next action;
storing the one or more scripts and the content in a data storage device of the client device; and
generating and displaying, using the one or more scripts, the updated user interface including the content within the web browser in response to detecting the occurrence of the predicted next action.

### Claim 18 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein determining the predicted next action comprises:
determining, for each of a plurality of actions including the predicted next action, a probability that the action will be performed; and
determining that the probability for the predicted next action satisfies a threshold probability.
