IP Library Granted Patent US 10,353,993
Granted Patent B2
US 10,353,993 · App. 15/174,297 · Granted Jul 16, 2019

Phased generation and delivery of structured documents

Inventors: Zixiao Zhang (Stanford, CA); Changhao Jiang (San Jose, CA)
Assignee: Facebook, Inc.
G06F17/2247G06F16/9577G06F17/227
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,353,993
App. No.
15/174,297
Granted
Jul 16, 2019
Kind
B2
Abstract

In one embodiment, a method includes receiving a request for a web page; sending a first response portion for generating the requested web page to a client computing device that includes a structured document place-holder code segments and executable code for implementing a page-assembling process; generating second response portions each for generating a corresponding portion of the requested web page that each include a call to a function of the page-assembling process; determining relative priorities of the second response portions; sending the second response portions to the client computing device in an order based on the determined relative priorities; and wherein the page-assembling process is configured to insert, or cause to be inserted, at a location determined by a corresponding one of the place-holder code segments, the second portions of content into a model representation of the structured document generated by a client rendering application.

Claims (63)

1. A method comprising:

receiving, by a computing server machine, a request for a web page;

sending, by the computing server machine, a first response portion for generating the requested web page to a client computing device in response to the request, the first response portion comprising a structured document for use by the client computing device to render the requested web page, the structured document comprising:

markup-language code that comprises one or more place-holder code segments; and

an executable code segment for implementing a page-assembling process;

generating, by the computing server machine, one or more second response portions each for generating a corresponding portion of the requested web page, each second response portion comprising markup-language code comprising a call to a function of the page-assembling process;

determining, for each second generated second response portion, a relative priority;

sending, by the computing server machine, each of the second response portions to the client computing device in an order based on the determined relative priorities of the respective second response portions, wherein each second response portion is configured to be inserted at a location determined by a corresponding one of the place-holder code segments of the structured document; and

wherein the page-assembling process is configured to, for each second response portion:

identify a place-holder identification (ID) parameter in the respective call to the function;

access a model representation of the structured document, wherein the model representation comprises one or more place-holder code segments, each place-holder code segment having a corresponding place-holder ID parameter;

identify a particular place-holder segment in the model representation by matching the place-holder ID parameter in the respective call to the function to a place-holder segment having a matching place-holder ID parameter; and

insert, or cause to be inserted, at the respective location determined by the particular place-holder code segment, the second response portion into the model representation of the structured document generated by a client rendering application.

2. The method of claim 1 , wherein the structured document further comprises one or more first resources or one or more first references to first resources.

3. The method of claim 1 , wherein the one or more second response portions further comprise one or more of:

one or more second portions of content to be rendered by the client computing device, one or more second resources, or one or more second references to second resources to be downloaded.

4. The method of claim 1 , wherein the page-assembling process is implemented at the client computing device.

5. The method of claim 1 , wherein generating each of the one or more second response portions comprises causing each of a plurality of page-generating processes to generate the markup-language code, one or more second portions of content, one or more second resources, or one or more second references to second resources, and the call to the function in a corresponding second response portion at least partially in parallel.

6. The method of claim 5 , wherein each of the one or more second response portions are sent to the client computing device upon completion of the generating of the markup language code, one or more second portions of content, one or more second resources, or one or more second references to second resources, and the call to the function in the respective second response portion.

7. The method of claim 1 , wherein the page-assembling process is further configured to:

determine whether one or more conditions that must be satisfied before executing the call to the function have been met.

8. The method of claim 1 , wherein after each of the one or more second response portions are received by the client computing device, the call to the function of each second response portion is configured to call the page-assembling process.

9. The method of claim 1 , wherein each second response portion comprises an identifier parameter that is usable by the page-assembling process to identify the corresponding place-holder code segment in the structured document.

10. The method of claim 1 , wherein when the first response portion is received by the client computing device, the first response portion is configured to cause the client rendering application executing in the client computing device to generate the model representation of the structured document for rendering the structured document, and to begin downloading or executing one or more first resources or one or more first references to first resources.

11. The method of claim 1 , wherein each place-holder code segment is represented as a place-holder node in the model representation.

12. The method of claim 1 , wherein each second response portion comprises a callback function that comprises the markup language code, one or more second portions of content, one or more second resources, or one or more second references to second resources.

13. The method of claim 12 , wherein the page-assembling process executes the callback functions of the second response portions each having a highest priority parameter value before executing callback functions of the second response portions not having the highest priority parameter value.

14. A computing server machine comprising:

one or more processors; and

a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executing the instructions to:

receive a request for a web page;

send a first response portion for generating the requested web page to a client computing device in response to the request, the first response portion comprising a structured document for use by the client computing device to render the requested web page, the structured document comprising:

markup-language code that comprises one or more place-holder code segments; and

an executable code segment for implementing a page-assembling process;

generate one or more second response portions each for generating a corresponding portion of the requested web page, each second response portion comprising markup-language code comprising a call to a function of the page-assembling process;

determine, for each second generated second response portion, a relative priority;

send each of the second response portions to the client computing device in an order based on the determined relative priorities of the respective second response portions, wherein each second response portion is configured to be inserted at a location determined by a corresponding one of the place-holder code segments of the structured document; and

wherein the page-assembling process is configured to, for each second response portion:

identify a place-holder identification (ID) parameter in the respective call to the function;

access a model representation of the structured document, wherein the model representation comprises one or more place-holder code segments, each place-holder code segment having a corresponding place-holder ID parameter;

identify a particular place-holder segment in the model representation by matching the place-holder ID parameter in the respective call to the function to a place-holder segment having a matching place-holder ID parameter; and

insert, or cause to be inserted, at the respective location determined by the particular place-holder code segment, the second response portion into the model representation of the structured document generated by a client rendering application.

15. The computing server machine of claim 14 , wherein the structured document further comprises one or more first resources or one or more first references to first resources.

16. The computing server machine of claim 14 , wherein the one or more second response portions further comprise one or more of:

one or more second portions of content to be rendered by the client computing device, one or more second resources, or one or more second references to second resources to be downloaded.

17. The computing server machine of claim 14 , wherein the processors being operable when executing the instructions to generate each of the one or more second response portions comprises the processors being operable when executing the instructions to:

cause each of a plurality of page-generating processes to generate the markup language code, one or more second portions of content, one or more second resources, or one or more second references to second resources, and the call to the function in a corresponding second response portion at least partially in parallel.

18. The computing server machine of claim 17 , wherein each of the one or more second response portions are sent to the client computing device upon completion of the generating of the markup language code, one or more second portions of content, one or more second resources, or one or more second references to second resources, and the call to the function in the respective second response portion.

19. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

receive, by a computing server machine, a request for a web page;

send, by the computing server machine, a first response portion for generating the requested web page to a client computing device in response to the request, the first response portion comprising a structured document for use by the client computing device to render the requested web page, the structured document comprising:

markup-language code that comprises one or more place-holder code segments;

an executable code segment for implementing a page-assembling process;

generate, by the computing server machine, one or more second response portions each for generating a corresponding portion of the requested web page, each second response portion comprising markup-language code comprising a call to a function of the page-assembling process;

determine, for each second generated second response portion, a relative priority

send, by the computing server machine, each of the second response portions to the client computing device in an order based on the determined relative priorities of the respective second response portions, wherein each second response portion is configured to be inserted at a location determined by a corresponding one of the place-holder code segments of the structured document; and

wherein the page-assembling process is configured to, for each second response portion:

identify a place-holder identification (ID) parameter in the respective call to the function;

access a model representation of the structured document, wherein the model representation comprises one or more place-holder code segments, each place-holder code segment having a corresponding place-holder ID parameter;

identify a particular place-holder segment in the model representation by matching the place-holder ID parameter in the respective call to the function to a place-holder segment having a matching place-holder ID parameter; and

insert, or cause to be inserted, at the respective location determined by the particular place-holder code segment, the second response portion into the model representation of the structured document generated by a client rendering application.

20. The media of claim 19 , wherein the one or more second response portions further comprise one or more of:

one or more second portions of content to be rendered by the client computing device, one or more second resources, or one or more second references to second resources to be downloaded.

Assignments (1)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
Continuity (3)
Continuation 14300075 · Jun 9, 2014
Continuation 12754549 · Apr 5, 2010
Related Publication 20160314101A1 · Oct 27, 2016
Cited By (1)
US 12,561,047