IP Library Granted Patent US 11,836,212
Granted Patent B2
US 11,836,212 · App. 17/542,210 · Granted Dec 5, 2023

Systems and methods for rendering interactive web pages

Inventors: Pedro Tacla Yamada (Sydney, AU); Benjamin De-Rong Nicholson (Sydney, AU); Raymond Rui Su (Sydney, AU)
Assignees: ATLASSIAN PTY LTD.; ATLASSIAN US, INC.
G06F16/972G06F16/9577G06F40/117
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,836,212
App. No.
17/542,210
Granted
Dec 5, 2023
Kind
B2
Abstract

Methods, systems and computer readable media for responding to webpage requests are disclosed. The method includes: receiving a request to render a webpage, the webpage comprising a plurality of webpage components; identifying at least a subset of webpage components of the plurality of webpage components to be rendered by the server; rendering the identified webpage components at the server and converting to HyperText Markup Language (HTML); and communicating the HTML of the webpage components rendered at the server along with unrendered web components of the plurality of webpage components to a client device for displaying on a display of the client device. The client device includes a client browser configured to render the unrendered webpage components and display all webpage components on the display of the client device.

Claims (95)

1. A computer-implemented method comprising:

receiving a request to render a webpage, the webpage comprising a plurality of webpage components;

selecting a subset of webpage components of the plurality of webpage components to be rendered by a server, the selection based on an estimated number of webpage components that can be initially displayed on a display of a client device and a component- rendering capacity of the server;

rendering the selected subset of webpage components at the server and converting to HyperText Markup Language (HTML); and

communicating the HTML of the subset of webpage components rendered at the server along with unrendered webpage components of the plurality of webpage components to the client device for displaying on the display of the client device, wherein the client device comprises a client browser configured to render the unrendered webpage components and display the subset of webpage components rendered at the server and webpage components rendered at the client device on the display of the client device.

2. The computer-implemented method of claim 1 , wherein selecting the subset of webpage components rendered by the server is further based on the webpage components displayed in a top portion of the webpage.

3. The computer-implemented method of claim 1 , wherein selecting the subset of webpage components of the plurality of webpage components further includes determining a threshold number of webpage components that can be rendered by the server in a preconfigured time duration and identifying up to the threshold number of webpage components as the subset of webpage components.

4. The computer-implemented method of claim 1 , wherein the webpage is a virtual board comprising a plurality of columns and the plurality of webpage components are arranged in the plurality of columns.

5. The computer-implemented method of claim 4 , wherein the selecting the subset of webpage components comprises:

determining a number of columns in the virtual board;

determining a maximum number of webpage components to render per column based on a threshold number of webpage components that can be rendered by the server in a preconfigured time and the number of columns in the virtual board; and

marking up to the maximum number of webpage components per column to be rendered by the server.

6. The computer-implemented method of claim 4 , wherein the virtual board includes a plurality of swimlanes, each swimlane comprising the plurality of columns, and

wherein identifying the at least the subset of webpage components further comprises:

determining a number of columns in the virtual board;

determining a maximum number of webpage components to render per column based on a threshold number of webpage components that can be rendered by the server and the number of columns in the virtual board; and

marking up to the maximum number of webpage components per column to be rendered for a first swimlane;

recomputing maximum number of cards to render per column in remaining swimlanes; and

repeating the marking and the recomputing until the recomputed maximum number of cards to render per column is zero.

7. The computer-implemented method of claim 4 , wherein the identifying the subset of webpage components further comprises:

determining a number of columns in the virtual board;

sorting columns in ascending order based on number of webpage components present in each column;

determining a maximum number of webpage components to render per column based on a threshold number of webpage components that can be rendered by the server and the number of columns in the virtual board;

setting a component counter to zero;

for each column of the sorted columns that is unprocessed:

selecting an unprocessed column from the sorted columns;

marking up to the maximum number of webpage components to be rendered for the selected column;

updating the component counter based on the number of webpage components marked for rendering;

determining whether unprocessed columns are present; and

upon determining that unprocessed columns are present, recalculating the maximum number of webpage components to render per column based on the threshold number of webpage components that can be rendered by the server, the updated component counter, and a number of unprocessed columns in the virtual board.

8. The computer-implemented method of claim 4 , wherein the selecting the at least a subset of webpage components further comprises:

determining number of columns in the virtual board;

setting a component counter to zero;

selecting a column of the virtual board;

determining whether the column includes any unmarked webpage components;

based on determining that the column includes one or more unmarked webpage components, marking an unmarked webpage component from the column for rendering at the server;

incrementing the component counter;

determining whether value of the component counter matches a the threshold number;

based on the determining that the value of the component counter is lower than the threshold number:

selecting an other column of the virtual board;

determining whether the other column includes any unmarked webpage components;

based on determining that the other column includes one or more unmarked webpage components, marking an unmarked webpage component from the other column for rendering at the server;

incrementing the component counter; and

determining whether the value of the component counter matches the threshold number.

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

determining whether all webpage components of the plurality of webpage components have been marked for rendering at the server.

10. The computer-implemented method of claim 8 , further comprising:

upon determining that the column does not include any unmarked webpage components, selecting a next column of the virtual board.

11. A non-transitory computer readable medium comprising instructions, which when executed by a processing unit of a computing device, cause the computing device to:

receive a request to render a webpage, the webpage comprising a plurality of webpage components;

select a subset of webpage components of the plurality of webpage components to be rendered by a server, the selection based on an estimated number of webpage components that can be initially displayed on a display of a client device and a component-rendering capacity of the server;

render the selected webpage components at the computing device and convert to HyperText Markup Language (HTML); and

communicate the HTML of the webpage components rendered at the computing device along with unrendered web components of the plurality of webpage components to the client device for displaying on the display of the client device, wherein the client device comprises a client browser configured to render the unrendered webpage components and display the subset of webpage components rendered at the computing device and webpage components rendered at the client device on the display of the client device.

12. The non-transitory computer-readable medium of claim 11 , wherein the subset of webpage components rendered by the computing device are the webpage components displayed at the top of the webpage.

13. The non-transitory computer-readable medium of claim 11 , wherein to select the subset of webpage components of the plurality of webpage components the non-transitory computer-readable medium further comprises instructions which when executed by the processing unit cause the computing device to determine a threshold number of webpage components that can be rendered by the computing device in a preconfigured time duration and identify up to the threshold number of webpage components as the subset of webpage components.

14. The non-transitory computer-readable medium of claim 11 , wherein the webpage is a board displaying the plurality of webpage components arranged in a plurality of columns.

15. The non-transitory computer-readable medium of claim 14 , wherein to determine the subset of webpage components of the plurality of webpage components includes the computer-readable medium further comprises instructions which when executed by the processing unit cause the computing device to:

determine a number of columns in the board;

determine a maximum number of webpage components to render per column based on a threshold number of webpage components that can be rendered by the server in a preconfigured time and the number of columns in the board; and

mark up to the maximum number of webpage components per column to be rendered by the server.

16. The non-transitory computer-readable medium of claim 14 , wherein the board includes a plurality of swimlanes, each swimlane comprising the plurality of columns and wherein to identify the at least the subset of webpage components of the plurality of webpage components, the computer-readable medium further comprises instructions which when executed by the processing unit cause the computing device to:

determine a number of columns in the board;

determine a maximum number of webpage components to render per column based on a threshold number of webpage components that can be rendered by the server and the number of columns in the board; and

mark up to the maximum number of webpage components per column to be rendered for a first swimlane;

recompute maximum number of cards to render per column in remaining swimlanes; and

repeat marking and recomputing until the recomputed maximum number of cards to render per column is zero.

17. The non-transitory computer-readable medium of claim 14 , wherein to determine the subset of webpage components of the plurality of webpage components, the computer-readable medium further comprises instructions which when executed by the processing unit cause the computing device to:

determine a number of columns in the board;

sort columns in ascending order based on number of webpage components present in each column;

determine a maximum number of webpage components to render per column based on the threshold number of webpage components that can be rendered by the server and the number of columns in the board;

set a component counter to zero;

for each column of the sorted columns that is unprocessed:

select an unprocessed column from the sorted columns;

mark up to the maximum number of webpage components to be rendered for the selected column;

update the component counter based on the number of webpage components marked for rendering;

determine whether unprocessed columns are present; and

upon determining that unprocessed columns are present, recalculate the maximum number of webpage components to render per column based on the threshold number of webpage components that can be rendered by the computing device, the updated component counter, and the number of unprocessed columns in the board.

18. The non-transitory computer-readable medium of claim 14 , wherein to determine the subset of webpage components of the plurality of webpage components, the computer-readable medium further comprises instructions which when executed by the processing unit cause the computing device to:

determine number of the columns in the board;

set a component counter to zero;

select a column of the board;

determine whether the column includes any unmarked webpage components;

upon determining that the column includes one or more unmarked webpage components, mark an unmarked webpage component from the column for rendering at the computing device;

increment the component counter;

determine whether value of the component counter matches a threshold number;

based on the determining that the value of the component counter is lower than a threshold number:

select an other column of the board;

determine whether the other column includes any unmarked webpage components;

based on determining that the other column includes one or more unmarked webpage components, mark an unmarked webpage component from the other column for rendering at the computing device;

increment the component counter; and

determine whether the value of the component counter matches the threshold number.

19. The non-transitory computer-readable medium of claim 18 , wherein the computer-readable medium further comprises instructions which when executed by the processing unit cause the computing device to:

determine whether all webpage components of the plurality of webpage components have been marked for rendering at the computing device.

20. The non-transitory computer-readable medium of claim 18 , wherein the computer-readable medium further comprises instructions which when executed by the processing unit cause the computing device to:

upon determining that the column does not include any unmarked webpage components, select a next column of the board.

Assignments (2)
CHANGE OF NAME Recorded Aug 5, 2022
From: ATLASSIAN, INC.
To: ATLASSIAN US, INC.
Reel/Frame 061085/0690 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2022
From: YAMADA, PEDRO TACLA; NICHOLSON, BENJAMIN DE-RONG; SU, RAYMOND RUI
To: ATLASSIAN PTY LTD.; ATLASSIAN INC.
Reel/Frame 059130/0324 →
Continuity (1)
Related Publication 20230177103A1 · Jun 8, 2023