Phased generation and delivery of structured documents
First Claim
1. A method comprising:
- receiving, by a computing system, a request for a web page;
sending, by the computing system, 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 and comprising;
markup-language code that comprises one or more place-holder code segments;
a code segment for implementing a page-assembling process that comprises a function library; and
one or more first resources or one or more first references to first resources,wherein sending the first response portion comprises sending the code segment comprising the function library;
generating, by the computing system, 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 and 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; and
a function call to a library function in the function library of the page-assembling process, wherein the generated markup-language code comprises the function call; and
sending, by the computing system, the second response portions to the client computing device;
wherein the page-assembling process is configured, responsive to a function call corresponding to a respective second response portion, to;
identify a place-holder identification (ID) parameter in the function call;
access a model representation, generated by a client rendering application, of the structured document that comprises one or more place-holder code segments, each place-holder code segment being represented as a place-holder node in the model representation, each place-holder code segment and respective place-holder node having a corresponding place-holder ID parameter;
identify a place-holder node in the model representation by matching the place-holder ID parameter in the function call to the corresponding place-holder node having a matching place-holder ID parameter; and
insert, or cause to be inserted, the second portions of content, resources, or calls to resources in the second response portion corresponding to the function call into the model representation at a location in the model representation determined based on the corresponding matching place-holder node.
2 Assignments
0 Petitions
Accused Products
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 including a page-assembling process, generating one or more second response portions each for generating a corresponding portion of the requested web page that each include a call to the page-assembling process, transmitting the second response portions to the client computing device, and wherein the page-assembling process is configured to, responsive to a call corresponding to a respective second response portion, insert, or cause to be inserted, content, resources, or calls to resources included in the respective second response portion into a model representation of the structured document generated by a client rendering application at a location in the model representation determined by a corresponding place-holder code segment included in the structured document.
-
Citations
20 Claims
-
1. A method comprising:
-
receiving, by a computing system, a request for a web page; sending, by the computing system, 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 and comprising; markup-language code that comprises one or more place-holder code segments; a code segment for implementing a page-assembling process that comprises a function library; and one or more first resources or one or more first references to first resources, wherein sending the first response portion comprises sending the code segment comprising the function library; generating, by the computing system, 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 and 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; and a function call to a library function in the function library of the page-assembling process, wherein the generated markup-language code comprises the function call; and sending, by the computing system, the second response portions to the client computing device; wherein the page-assembling process is configured, responsive to a function call corresponding to a respective second response portion, to; identify a place-holder identification (ID) parameter in the function call; access a model representation, generated by a client rendering application, of the structured document that comprises one or more place-holder code segments, each place-holder code segment being represented as a place-holder node in the model representation, each place-holder code segment and respective place-holder node having a corresponding place-holder ID parameter; identify a place-holder node in the model representation by matching the place-holder ID parameter in the function call to the corresponding place-holder node having a matching place-holder ID parameter; and insert, or cause to be inserted, the second portions of content, resources, or calls to resources in the second response portion corresponding to the function call into the model representation at a location in the model representation determined based on the corresponding matching place-holder node.
-
-
2. The method of claim 1, wherein generating, by the computing system, 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 function call in a corresponding second response portion at least partially in parallel.
-
3. The method of claim 2, 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 function call in the respective second response portion.
-
4. The method of claim 1, wherein the first response portion and the one or more second response portions are sent to the client computing device over the same persistent connection.
-
5. The method of claim 1, wherein after each of the one or more second response portions are received by the client computing device, the function call of each second response portion is configured to call the page-assembling process.
-
6. 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.
-
7. 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 the one or more first resources or one or more first references to first resources.
-
8. The method of claim 1, wherein:
-
each second response portion further comprises metadata usable by the page-assembling process in determining a relative priority of the second response portion; and the page-assembling process inserts, or causes to be inserted, the second portions of content, second resources, or second calls to second resources in each respective second response portion into the model representation based on the relative priority of the respective second response portion.
-
-
9. 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.
-
10. The method of claim 9, wherein:
-
each second response portion further comprises one of a plurality of priority parameter values indicating a relative priority of the second response portion; and 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.
-
-
11. A method comprising:
-
receiving, by a page-assembling process executing in conjunction with a client rendering application executing in a client computing device, a call from a function call in a response portion received by the client computing device for generating a corresponding portion of a requested web page, the response portion further comprising markup-language code and one or more of one or more portions of content to be rendered by the client computing device, one or more resources, or one or more references to resources; and after receiving the call from the function call; identifying, by the page-assembling process, a place-holder identification (ID) parameter in the function call; accessing, by the page-assembling process, a model representation, generated by the client rendering application, of a structured document that comprises one or more place-holder code segments, each place-holder code segment being represented as a place-holder node in the model representation, each place-holder code segment and respective place-holder node having a corresponding place-holder ID parameter; identifying, by the page-assembling process, a place-holder node in the model representation by matching the place-holder ID parameter in the call to the corresponding place-holder node having a matching place-holder ID parameter; and inserting, or causing to be inserted, by the page-assembling process, the portions of content, resources, or calls to resources in the response portion into the model representation at a location in the model representation determined based on the corresponding matching place-holder node; wherein the response portion is one of a plurality of second response portions received by the client computing device subsequent to a first response portion received by the client computing device, each second response portion comprising a function call to the page-assembling process, markup-language code, and one or more of one or more portions of content to be rendered by the client computing device, one or more resources, or one or more references to resources; and wherein the first response portion comprises; the structured document for use by the client computing device to render a requested web page, the structured document comprising; markup-language code that comprises one or more place-holder code segments; a code segment for implementing the page-assembling process and comprising a function library; and one or more first resources or one or more first references to first resources.
-
-
12. The method of claim 11, wherein the first response portion and the one or more second response portions are sent to the client computing device over the same persistent connection.
-
13. The method of claim 11, wherein after each of the plurality of second response portions are received by the client computing device, the function call of each second response portion is configured to call the page-assembling process.
-
14. The method of claim 11, wherein each second response portion comprises an identifier parameter that is usable by the page-assembling process to identify the corresponding place-holder node.
-
15. The method of claim 11, 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 the one or more first resources or one or more first references to first resources.
-
16. The method of claim 11, wherein:
-
each second response portion further comprises metadata usable by the page-assembling process in determining a relative priority of the second response portion; and the page-assembling process inserts, or causes to be inserted, the portions of content, resources, or calls to resources in each respective second response portion into the model representation based on the relative priority of the respective second response portion.
-
-
17. The method of claim 11, wherein each second response portion comprises a callback function that comprises the markup language code, one or more portions of content, one or more resources, or one or more references to resources in the second response portion.
-
18. The method of claim 17, wherein:
-
each second response portion further comprises one of a plurality of priority parameter values indicating a relative priority of the second response portion; 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; and executing a callback function of a respective second response portion comprises the identifying of the corresponding place-holder node in the model representation the inserting, or causing to be inserted, of the portions of content, resources, or calls to resources in the response portion into the model representation at the location in the model representation determined based on the corresponding matching place-holder node.
-
-
19. A system comprising:
-
a server computing device comprising; one or more first processors; and first logic encoded in one or more first computer-readable tangible storage media that, when executed by the one or more first processors, is operable to; receive a request for a web page; send a first response portion for generating the requested web page to the 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 and comprising;
markup-language code that comprises one or more place-holder code segments;
a code segment for implementing a page-assembling process that comprises a function library; and
one or more first resources or one or more first references to first resources,wherein sending the first response portion comprises sending the code segment comprising the function library; and 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 and 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; and a function call to a library function in the function library of the page-assembling process, the generated markup-language code comprising the function call; and send the second response portions to the client computing device; and the client computing device, wherein the client computing device comprises; one or more second processors; and second logic encoded in one or more second computer-readable tangible storage media that, when executed by the one or more second processors, is operable to; implement the page-assembling process, wherein the page-assembling process is configured, responsive to a function call corresponding to a respective second response portion, to; identify a place-holder identification (ID) parameter in the function call; access a model representation, generated by a client rendering application, of the structured document that comprises one or more place-holder code segments, each place-holder code segment being represented as a place-holder node in the model representation, each place-holder code segment and respective place-holder node having a corresponding place-holder ID parameter; identify a place-holder node in the model representation by matching the place-holder ID parameter in the function call to the corresponding place-holder node having a matching place-holder ID parameter; and insert, or cause to be inserted, the second portions of content, resources, or calls to resources in the second response portion corresponding to the function call into the model representation at a location in the model representation determined based on the corresponding matching place-holder node.
-
-
20. One or more computer-readable non-transitory tangible storage media encoded with program code that, when executed by one or more processors, is operable to:
-
receive, in conjunction with a client rendering application executing in a client computing device, a call from a function call in a response portion received by the client computing device for generating a corresponding portion of a requested web page, the response portion further comprising markup-language code and one or more of one or more portions of content to be rendered by the client computing device, one or more resources, or one or more references to resources; and after receiving the call from the function call; identify a place-holder identification (ID) parameter in the function call; access a model representation, generated by the client rendering application, of a structured document that comprises one or more place-holder code segments, each place-holder code segment being represented as a place-holder node in the model representation, each place-holder code segment and respective place-holder node having a corresponding place-holder ID parameter; identify a place-holder node in the model representation by matching the place-holder ID parameter in the call to the corresponding place-holder node having a matching place-holder ID parameter; and insert, or cause to be inserted, the portions of content, resources, or calls to resources in the response portion into the model representation at a location in the model representation determined based on the corresponding matching place-holder node; wherein the response portion is one of a plurality of second response portions received by the client computing device subsequent to a first response portion received by the client computing device, each second response portion comprising a function call to the page-assembling process, markup-language code, and one or more of;
one or more portions of content to be rendered by the client computing device, one or more resources, or one or more references to resources; andwherein the first response portion comprises; the structured document for use by the client computing device to render a requested web page, the structured document comprising; markup-language code that comprises one or more place-holder code segments; a code segment for implementing the page-assembling process and comprising a function library; and one or more first resources or one or more first references to first resources.
-
Specification