IP Library Granted Patent US 11,809,810
Granted Patent B1
US 11,809,810 · App. 17/580,422 · Granted Nov 7, 2023

Dynamically displaying portions of a hierarchically organized data file in a web application

Inventors: Trenton John Beals (Hayward, CA); Nuri Amari (Kingston, CA)
Assignee: Splunk Inc.
G06F40/143G06F16/9027G06F16/9538G06F16/9577G06F40/106G06F40/166G06F40/221G06F3/0485
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,809,810
App. No.
17/580,422
Granted
Nov 7, 2023
Kind
B1
Abstract

Techniques are described for optimizing the display of hierarchically organized data by dynamically rendering portions visible within a display area of a web browser. Using a web page file corresponding to a web page that includes the display of a visual tree structure representing JavaScript Object Notation (JSON) data and client-side executable logic, an application running at the client device displays the web page including the visual tree structure and one or more first tree nodes corresponding to first JSON objects from a first portion of the JSON data. In response to input requesting display of one or more second JSON objects from a second portion of the JSON data not currently displayed in the visual tree structure, the application modifies one or more elements of the web page to update display of the visual tree structure to include one or more second tree nodes corresponding to the second JSON objects.

Claims (60)

1. A computer-implemented method, comprising:

receiving, from a client device, a request to access a web page that includes display of a visual tree structure representing hierarchically organized data, wherein the visual tree structure includes tree nodes corresponding to objects from the hierarchically organized data; and

sending, to the client device, response data that causes an application running at the client device to:

determine one or more first tree nodes of the visual tree structure to be displayed, wherein the one or more first tree nodes correspond to one or more first data objects from a first portion of the hierarchically organized data,

obtain, from a server, the first portion of the hierarchically organized data including the one or more first data objects,

display the web page including the visual tree structure and the one or more first tree nodes corresponding to the one or more first data objects,

receive input requesting display of one or more second data objects from a second portion of the hierarchically organized data not currently displayed in the visual tree structure,

obtain, from the server, a second portion of the hierarchically organized data including the one or more second data objects, and

update display of the visual tree structure to include one or more second tree nodes corresponding to the one or more second data objects.

2. The computer-implemented method of claim 1 , wherein the input requesting the display of the one or more second data objects from the second portion of the hierarchically organized data not currently displayed in the visual tree structure is one of: input to scroll through the visual tree structure, input to expand one or more tree nodes of the visual tree structure, and input to collapse one or more tree nodes of the visual tree structure.

3. The computer-implemented method of claim 1 , wherein a number of the one or more first tree nodes is based at least in part on a size of a display area of the application.

4. The computer-implemented method of claim 1 , wherein the web page is based on a HyperText Markup Language (HTML) file or an Extensible Markup Language (XML) file.

5. The computer-implemented method of claim 1 , wherein the application is a web browser capable of rendering the web page and executing client-side executable logic, and wherein the client-side executable logic is based on JavaScript.

6. The computer-implemented method of claim 1 , wherein the hierarchically organized data includes JavaScript Object Notation (JSON) data.

7. The computer-implemented method of claim 1 , wherein the input requesting the display of the one or more second data objects from a second portion of the hierarchically organized data is a request to expand a first tree node of the one or more first tree nodes, and wherein the request to expand the first tree node of the one or more first tree nodes causes the application running at the client device to propagate a shift value to sibling tree nodes of the expanded first tree node.

8. The computer-implemented method of claim 1 , wherein the input requesting the display of the one or more second data objects from a second portion of the hierarchically organized data is a request to collapse a first tree node of the one or more first tree nodes, and wherein the request to collapse the first tree node of the one or more first tree nodes causes the application running at the client device to store a state of each of one or more child nodes of the first tree node.

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

receiving, from the client device, a request for the first portion of the visual tree structure representing the hierarchically organized data;

parsing the visual tree structure representing the hierarchically organized data to identify the first portion of the visual tree structure representing the hierarchically organized data; and

sending, to the client device, the first portion of the visual tree structure representing the hierarchically organized data.

10. The computer-implemented method of claim 1 , wherein the response data further causes the application running at the client device to:

retrieve a file storing the hierarchically organized data; and

store the file in a memory.

11. The computer-implemented method of claim 1 , wherein the response data further causes the application running at the client device to:

receive input representing a search query for a search process on the one or more first data objects from the hierarchically organized data;

identify one or more search results from the one or more first data objects matching the search query;

modify one or more elements of a web page file used to display the visual tree structure to display a first tree node representing a first search result of the one or more search results;

receive input requesting display of a second search result of the one or more search results; and

modify the one or more elements of the web page file used to display the visual tree structure to display a second tree node representing the second search result of the one or more search results.

12. The computer-implemented method of claim 1 , wherein updating the display of the visual tree structure to include the one or more second tree nodes corresponding to the one or more second data objects includes updating a list of data objects.

13. The computer-implemented method of claim 1 , wherein the response data further causes the application running at the client device to:

receive input representing a search query for a search process on the one or more first data objects from the hierarchically organized data; and

display metadata including a value indicating a number of tree nodes in the hierarchically organized data satisfying the search query.

14. The computer-implemented method of claim 1 , wherein the response data further causes the application running at the client device to:

receive input representing an edit to a data object from the hierarchically organized data; and

update a list of data objects to include the edit to the one or more first data objects.

15. A computing device, comprising:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to perform operations including:

receiving, from a client device, a request to access a web page that includes display of a visual tree structure representing hierarchically organized data, wherein the visual tree structure includes tree nodes corresponding to objects from the hierarchically organized data; and

sending, to the client device, response data that causes an application running at the client device to:

determine one or more first tree nodes of the visual tree structure to be displayed, wherein the one or more first tree nodes correspond to one or more first data objects from a first portion of the hierarchically organized data,

obtain, from a server, the first portion of the hierarchically organized data including the one or more first data objects,

display the web page including the visual tree structure and the one or more first tree nodes corresponding to the one or more first data objects,

receive input requesting display of one or more second data objects from a second portion of the hierarchically organized data not currently displayed in the visual tree structure,

obtain, from the server, a second portion of the hierarchically organized data including the one or more second data objects, and

update display of the visual tree structure to include one or more second tree nodes corresponding to the one or more second data objects.

16. The computing device of claim 15 , wherein the input requesting the display of the one or more second data objects from the second portion of the hierarchically organized data not currently displayed in the visual tree structure is one of: input to scroll through the visual tree structure, input to expand one or more tree nodes of the visual tree structure, and input to collapse one or more tree nodes of the visual tree structure.

17. The computing device of claim 15 , wherein a number of the one or more first tree nodes is based at least in part on a size of a display area of the application.

18. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to perform operations including:

receiving, from a client device, a request to access a web page that includes display of a visual tree structure representing hierarchically organized data, wherein the visual tree structure includes tree nodes corresponding to objects from the hierarchically organized data; and

sending, to the client device, response data that causes an application running at the client device to:

determine one or more first tree nodes of the visual tree structure to be displayed, wherein the one or more first tree nodes correspond to one or more first data objects from a first portion of the hierarchically organized data,

obtain, from a server, the first portion of the hierarchically organized data including the one or more first data objects,

display the web page including the visual tree structure and the one or more first tree nodes corresponding to the one or more first data objects,

receive input requesting display of one or more second data objects from a second portion of the hierarchically organized data not currently displayed in the visual tree structure,

obtain, from the server, a second portion of the hierarchically organized data including the one or more second data objects, and

update display of the visual tree structure to include one or more second tree nodes corresponding to the one or more second data objects.

19. The non-transitory computer-readable medium of claim 18 , wherein the input requesting the display of the one or more second data objects from the second portion of the hierarchically organized data not currently displayed in the visual tree structure is one of: input to scroll through the visual tree structure, input to expand one or more tree nodes of the visual tree structure, and input to collapse one or more tree nodes of the visual tree structure.

20. The non-transitory computer-readable medium of claim 18 , wherein a number of the one or more first tree nodes is based at least in part on a size of a display area of the application.

Assignments (4)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
CHANGE OF NAME Recorded Jan 6, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 069825/0782 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2022
From: BEALS, TRENTON JOHN; AMARI, NURI
To: SPLUNK INC.
Reel/Frame 058843/0388 →
Continuity (1)
Continuation 16779236 · Jan 31, 2020