Reducing latency
First Claim
1. A method performed by data processing apparatus, the method comprising:
- authenticating, by the data processing apparatus, a given user as an authorized user of a given online account based on data submitted through a client device of the given user;
initiating, for the given user and in response to the authenticating, a user session on the client device in which data related to the given online account is presented to the given user after the given user is authenticated as the authorized user;
generating, by the data processing apparatus and for presentation on the client device, a visualization of an initial dashboard user interface that includes multiple different display cards that provide different reports for the given online account, wherein the multiple different display cards present different types of data in a same user interface, including;
identifying, by the data processing apparatus, a particular card that the given user interacted with during a previous user session; and
generating, by the data processing apparatus, an updated view of the particular card for inclusion in the initial dashboard based on the given user having previously interacted with the particular card during the previous user session;
selecting, by the data processing apparatus, a set of data for a different display card that is not included in the initial dashboard user interface based on how frequently other users view the different display card; and
reducing latency for presenting an updated dashboard user interface in the same user session at the client device by pre-caching, at the client device, the set of data for the different display card that is not included in the initial dashboard user interface presented during the user session on the client device, wherein the pre-caching is performed prior to a request by the given user to present the different display card and while the initial dashboard user interface is displayed on the client device during the user session, wherein the updated dashboard user interface is updated using the pre-cached set of data for the different display card;
detecting a trigger to update the pre-cached set of data for the different display card;
determining, in response to detecting the trigger, whether to update the pre-cached set of data for the different display card, including;
updating the pre-cached set of data for the different display card when an analysis of previous latency numbers for previous query patterns indicates that the pre-cached set of data should be updated; and
waiting for another trigger before updating the pre-cached set of data for the different display card when the analysis of the previous latency numbers for the previous query patterns indicates that the pre-cached set of data should not be updated.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for reducing latency in network communications and data presentation. In one aspect, a user session is initiated in which data related to an account is presented to the user. A user group to which the given user has been assigned is identified. A first dataset related to the account is selected based on the user group. A second dataset related to the account is selected based on types of data previously requested by various other users in the user group. A user interface for the account is updated to present at least a portion of the first dataset. Latency in updating the user interface is reduced when presenting additional portions of the first dataset or the second dataset by providing, to the client device, the second dataset prior to receiving a request for the second dataset.
-
Citations
20 Claims
-
1. A method performed by data processing apparatus, the method comprising:
-
authenticating, by the data processing apparatus, a given user as an authorized user of a given online account based on data submitted through a client device of the given user; initiating, for the given user and in response to the authenticating, a user session on the client device in which data related to the given online account is presented to the given user after the given user is authenticated as the authorized user; generating, by the data processing apparatus and for presentation on the client device, a visualization of an initial dashboard user interface that includes multiple different display cards that provide different reports for the given online account, wherein the multiple different display cards present different types of data in a same user interface, including; identifying, by the data processing apparatus, a particular card that the given user interacted with during a previous user session; and generating, by the data processing apparatus, an updated view of the particular card for inclusion in the initial dashboard based on the given user having previously interacted with the particular card during the previous user session; selecting, by the data processing apparatus, a set of data for a different display card that is not included in the initial dashboard user interface based on how frequently other users view the different display card; and reducing latency for presenting an updated dashboard user interface in the same user session at the client device by pre-caching, at the client device, the set of data for the different display card that is not included in the initial dashboard user interface presented during the user session on the client device, wherein the pre-caching is performed prior to a request by the given user to present the different display card and while the initial dashboard user interface is displayed on the client device during the user session, wherein the updated dashboard user interface is updated using the pre-cached set of data for the different display card; detecting a trigger to update the pre-cached set of data for the different display card; determining, in response to detecting the trigger, whether to update the pre-cached set of data for the different display card, including; updating the pre-cached set of data for the different display card when an analysis of previous latency numbers for previous query patterns indicates that the pre-cached set of data should be updated; and waiting for another trigger before updating the pre-cached set of data for the different display card when the analysis of the previous latency numbers for the previous query patterns indicates that the pre-cached set of data should not be updated. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system, comprising:
-
a first front-end server, including one or more processors, that authenticates a given user as an authorized user of a given online account based on data submitted through a client device of the given user, and initiates, for the given user and in response to the authenticating, a user session on the client device in which data related to the given online account is presented to the given user after the given user is authenticated as the authorized user; a data selector, including one or more processors, that identifies a particular card that the given user interacted with during a previous user session; a user interface generator, including one or more processors, that generates, for presentation on the client device, a visualization of an initial dashboard user interface that includes multiple different display cards that provide different reports for the given online account, wherein the multiple different display cards present different types of data in a same user interface, and generates an updated view of the particular card for inclusion in the initial dashboard based on the given user having previously interacted with the particular card during the previous user session; and a second front-end server, including one or more processors, that selects a set of data for a different display card that is not included in the initial dashboard user interface based on how frequently other users view the different display card, reduces latency for presenting an updated dashboard user interface in the same user session at the client device by pre-caching, at the client device, the set of data for the different display card that is not included in the initial dashboard user interface, wherein the pre-caching is performed prior to a request by the given user to present the different display card and while the initial dashboard user interface is displayed on the client device during the user session, wherein the updated dashboard user interface is updated using the pre-cached set of data for the different display card, and detects a trigger to update the pre-cached set of data for the different display card, determines, in response to detecting the trigger, whether to update the pre-cached set of data for the different display card, including; updating the pre-cached set of data for the different display card when an analysis of previous latency numbers for previous query patterns indicates that the pre-cached set of data should be updated; and waiting for another trigger before updating the pre-cached set of data for the different display card when the analysis of the previous latency numbers for the previous query patterns indicates that the pre-cached set of data should not be updated. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer storage medium encoded with a computer program, the program comprising instructions that when executed by one or more data processing apparatus cause the data processing apparatus to perform operations comprising:
-
authenticating a given user as an authorized user of a given online account based on data submitted through a client device of the given user; initiating, for the given user and in response to the authenticating, a user session on the client device in which data related to the given online account is presented to the given user after the given user is authenticated as the authorized user; generating, for presentation on the client device, a visualization of an initial dashboard user interface that includes multiple different display cards that provide different reports for the given online account, wherein the multiple different display cards present different types of data in a same user interface, including; identifying a particular card that the given user interacted with during a previous user session; and generating an updated view of the particular card for inclusion in the initial dashboard based on the given user having previously interacted with the particular card during the previous user session; selecting a set of data for a different display card that is not included in the initial dashboard user interface based on how frequently other users view the different display card; and reducing latency for presenting an updated dashboard user interface in the same user session at the client device by pre-caching, at the client device, the set of data for the different display card that is not included in the initial dashboard user interface presented during the user session on the client device, wherein the pre-caching is performed prior to a request by the given user to present the different display card and while the initial dashboard user interface is displayed on the client device during the user session, wherein the updated dashboard user interface is updated using the pre-cached set of data for the different display card; detecting a trigger to update the pre-cached set of data for the different display card; determining, in response to detecting the trigger, whether to update the pre-cached set of data for the different display card, including; updating the pre-cached set of data for the different display card when an analysis of previous latency numbers for previous query patterns indicates that the pre-cached set of data should be updated; and waiting for another trigger before updating the pre-cached set of data for the different display card when the analysis of the previous latency numbers for the previous query patterns indicates that the pre-cached set of data should not be updated. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification