Eager block fetching for web-based data grids
First Claim
1. A non-transitory computer readable medium having stored thereon program code executable by a processor, the program code comprising:
- code that causes the processor to receive, from a client computer system, a request for data in response to a scroll event performed by a user of the client computer system with respect to a data grid, the request including an indication of whether the scroll event is a short scroll or a long scroll;
if the scroll event is a short scroll, code that causes the processor to retrieve, in response to the request, a first amount of data based on one or more first parameters defining a predetermined block size; and
if the scroll event is a long scroll, code that causes the processor to retrieve, in response to the request, a second amount of data based on the one or more first parameters defining the predetermined block size and one or more second parameters defining a predetermined block array size, wherein the code that causes the processor to retrieve the second amount of data based on the one or more first parameters and the one or more second parameters comprises;
code that causes the processor to determine a size of the second amount of data by multiplying the predetermined block size by the predetermined block array size; and
code that causes the processor to retrieve the second amount of data based on the determined size.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for improving scrolling performance in a web-based data grid. In one set of embodiments, when a user scrolls through a data grid rendered in a viewport of the user'"'"'s web browser, client-side code executing in the web browser can detect whether a scroll event has occurred that requires a portion of the viewport to be filled/refreshed with data from a server. The client-side code can further determine whether the scroll event is a short scroll or a long scroll, and can send a request to the server that indicates the type of scroll event. If the scroll event is a short scroll, the server can determine a first amount of data to fetch based on one or more first parameters. If the scroll event is a long scroll, the server can determine a second amount of data to fetch based on one or more second parameters.
27 Citations
15 Claims
-
1. A non-transitory computer readable medium having stored thereon program code executable by a processor, the program code comprising:
-
code that causes the processor to receive, from a client computer system, a request for data in response to a scroll event performed by a user of the client computer system with respect to a data grid, the request including an indication of whether the scroll event is a short scroll or a long scroll; if the scroll event is a short scroll, code that causes the processor to retrieve, in response to the request, a first amount of data based on one or more first parameters defining a predetermined block size; and if the scroll event is a long scroll, code that causes the processor to retrieve, in response to the request, a second amount of data based on the one or more first parameters defining the predetermined block size and one or more second parameters defining a predetermined block array size, wherein the code that causes the processor to retrieve the second amount of data based on the one or more first parameters and the one or more second parameters comprises; code that causes the processor to determine a size of the second amount of data by multiplying the predetermined block size by the predetermined block array size; and code that causes the processor to retrieve the second amount of data based on the determined size. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
rendering, by a client computer system, a data grid in a viewport of a web browser; detecting, by the client computer system, a scroll event performed by a user with respect to the data grid; determining, by the client computer system, that a first portion of the data grid visible in the viewport as a result of the scroll event needs to be populated with data from a server computer system; if any portion of the data grid visible in the viewport as a result of the scroll event overlaps one or more data blocks stored on the client computer system, determining that the scroll event is a short scroll; if no portion of the data grid visible in the viewport as a result of the scroll event overlaps one or more data blocks stored on the client computer system; determining that the scroll event is a long scroll; and determining a size of an amount of data by multiplying a predetermined block size by a predetermined block array size; sending, by the client computer system to a server computer system, a request for a data block for populating the first portion of the data grid, the request including an indication of whether the scroll event is a short scroll or a long scroll, wherein if the scroll event is a long scroll, the size of the amount of data is included in the request. - View Dependent Claims (9, 10)
-
-
11. A system comprising:
a processor configured to; receive, from a client computer system, a request for data in response to a scroll event performed by a user of the client computer system with respect to a data grid, the request including an indication of whether the scroll event is a short scroll or a long scroll; if the scroll event is a short scroll, retrieve, in response to the request, a first amount of data based on one or more first parameters defining a first predetermined block size; and if the scroll event is a long scroll; retrieve, in response to the request, a second amount of data based on a second predetermined block size distinct from the first predetermined block size, the second predetermined block size being the first predetermined block size multiplied by a predetermined block array size. - View Dependent Claims (12, 13, 14, 15)
Specification