IP Library Granted Patent US 10,943,065
Granted Patent B2
US 10,943,065 · App. 15/657,062 · Granted Mar 9, 2021

Systems and methods for rendering data based on fixed-length templating

Inventor: Douglas Michael Mayle (San Francisco, CA)
Assignee: Facebook, Inc.
G06F40/186G06F16/972G06F40/14
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 10,943,065
App. No.
15/657,062
Granted
Mar 9, 2021
Kind
B2
Abstract

Systems, methods, and non-transitory computer-readable media can receive a plurality of web templates associated with a web page. A buffer having a fixed, pre-determined length is allocated. A first set of data associated with a first web template of the plurality of web templates is copied to the buffer. A second set of data associated with a second web template of the plurality of web templates is copied to the buffer.

Claims (55)

1. A computer-implemented method comprising:

receiving, by a computing system, a plurality of web templates associated with a web page, wherein:

at least one web template of the plurality of web templates comprises template data and render data,

the template data comprises a start tag and an end tag associated with a set of render instructions, and

the render data references a web page element to be rendered in the web page based on the set of render instructions;

allocating, by the computing system, a buffer within a memory, the buffer having a fixed, pre-determined length, wherein the buffer comprises a template data portion and a render data portion having a fixed length;

copying, by the computing system, a first set of data associated with a first web template of the plurality of web templates to the buffer;

determining, by the computing system, whether template data associated with a second web template of the plurality of web templates is identical to template data associated with the first web template that is stored within the buffer; and

copying, by the computing system, a second set of data associated with the second web template of the plurality of web templates to the buffer.

2. The computer-implemented method of claim 1 , wherein render data associated with the first web template is a first set of dynamic render data having a first size and render data associated with the second web template is a second set of dynamic render data having a second size different from the first size.

3. The computer-implemented method of claim 2 , wherein the copying the first set of data associated with the first web template of the plurality of web templates to the buffer comprises:

copying a first set of template data associated with the first web template to the template data portion; and

copying the first set of dynamic render data associated with the first web template to the render data portion.

4. The computer-implemented method of claim 3 , wherein the copying the second set of data associated with the second web template of the plurality of web templates to the buffer comprises:

copying the second set of dynamic render data associated with the second web template to the render data portion without modifying the template data portion.

5. The computer-implemented method of claim 1 , wherein the copying the second set of data associated with the second web template of the plurality of web templates to the buffer is performed based on a determination that the template data associated with the second web template is identical to the template data associated with the first web template that is stored within the buffer.

6. The computer-implemented method of claim 1 , wherein the allocating the buffer is performed based on a determination that the template data associated with the first web template is not identical to template data stored within any existing buffer.

7. The computer-implemented method of claim 1 , further comprising rendering a first web page element based on the first set of data.

8. The computer-implemented method of claim 7 , further comprising rendering a second web page element based on the second set of data.

9. The computer-implemented method of claim 8 , further comprising providing the first and second web page elements to a user computing device for presentation to a user.

10. A system comprising:

at least one processor; and

a memory storing instructions that, when executed by the at least one processor, cause the system to perform a method comprising:

receiving a plurality of web templates associated with a web page, wherein:

at least one web template of the plurality of web templates comprises template data and render data,

the template data comprises a start tag and an end tag associated with a set of render instructions, and

the render data references a web page element to be rendered in the web page based on the set of render instructions;

allocating a buffer within a memory, the buffer having a fixed, pre-determined length, wherein the buffer comprises a template data portion and a render data portion having a fixed length;

copying a first set of data associated with a first web template of the plurality of web templates to the buffer;

determining whether template data associated with a second web template of the plurality of web templates is identical to template data associated with the first web template that is stored within the buffer; and

copying a second set of data associated with the second web template of the plurality of web templates to the buffer.

11. The system of claim 10 , wherein render data associated with the first web template is a first set of dynamic render data having a first size and render data associated with the second web template is a second set of dynamic render data having a second size different from the first size.

12. The system of claim 11 , wherein the copying the first set of data associated with the first web template of the plurality of web templates to the buffer comprises:

copying a first set of template data associated with the first web template to the template data portion; and

copying the first set of dynamic render data associated with the first web template to the render data portion.

13. The system of claim 12 , wherein the copying the second set of data associated with the second web template of the plurality of web templates to the buffer comprises:

copying the second set of dynamic render data associated with the second web template to the render data portion without modifying the template data portion.

14. A non-transitory computer-readable storage medium including instructions that, when executed by at least one processor of a computing system, cause the computing system to perform a method comprising:

receiving a plurality of web templates associated with a web page, wherein:

at least one web template of the plurality of web templates comprises template data and render data,

the template data comprises a start tag and an end tag associated with a set of render instructions, and

the render data references a web page element to be rendered in the web page based on the set of render instructions;

allocating a buffer within a memory, the buffer having a fixed, pre-determined length, wherein the buffer comprises a template data portion and a render data portion having a fixed length;

copying a first set of data associated with a first web template of the plurality of web templates to the buffer;

determining whether template data associated with a second web template of the plurality of web templates is identical to template data associated with the first web template that is stored within the buffer; and

copying a second set of data associated with the second web template of the plurality of web templates to the buffer.

15. The non-transitory computer-readable storage medium of claim 14 , wherein render data associated with the first web template is a first set of dynamic render data having a first size and render data associated with the second web template is a second set of dynamic render data having a second size different from the first size.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the copying the first set of data associated with the first web template of the plurality of web templates to the buffer comprises:

copying a first set of template data associated with the first web template to the template data portion; and

copying the first set of dynamic render data associated with the first web template to the render data portion.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the copying the second set of data associated with the second web template of the plurality of web templates to the buffer comprises:

copying the second set of dynamic render data associated with the second web template to the render data portion without modifying the template data portion.

18. The computer-implemented method of claim 2 , wherein the render data portion accommodates sets of dynamic render data of different sizes by using padding to fill in any unused portion of the render data portion.

19. The system of claim 11 , wherein the render data portion accommodates sets of dynamic render data of different sizes by using padding to fill in any unused portion of the render data portion.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the render data portion accommodates sets of dynamic render data of different sizes by using padding to fill in any unused portion of the render data portion.

Assignments (2)
CHANGE OF NAME Recorded Dec 2, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058298/0794 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2017
From: MAYLE, DOUGLAS MICHAEL
To: FACEBOOK, INC.
Reel/Frame 043287/0962 →
Continuity (1)
Related Publication 20190026262A1 · Jan 24, 2019