Initial server-side content rendering for client-script web pages
First Claim
1. A method implemented at a Web server computing system that provides one or more Web pages for a client computing system to display and that includes a processor and memory storing instructions which, when executed by the processor, implement the method for enabling the Web server to provide full initial content of a Web page to the client computing system, wherein at least a part of the full initial content of the Web page was designed to be generated at the client computing system by the client executing a client-side script on traditional initial content of the Web page and the client making at least one request for data stored locally on the Web server, the method comprising:
- the Web server executing a document object model (“
DOM”
) simulator to generate a DOM of the traditional initial content of the Web page, wherein the DOM models layout and static content of the Web page, and wherein the DOM also models scripts of the Web page;
the Web server extracting, from the DOM, script tags corresponding to the traditional initial content of the Web page, wherein the script tags specify the client-side script that was designed to be executed by the client;
the Web server constructing the client-side script by fetching content identified in the script tags according to a sequential ordering of the content in the script tags;
the Web server executing the client-side script on the DOM to cause the DOM to contain the full initial content of the Web page, wherein the client-side script is executed using a server-side script engine that simulates a client-side script engine that would be used on the client, wherein the server-side script engine simulates an enriched execution environment in which the DOM is available to the client-side script as a built-in object, accessible through the same paths as if the DOM were on the client such that the DOM appears to the client-side script as if the client-side script were being executed on the client by the client-side script engine, and during execution of the client-side script on the DOM;
the Web server detecting that the client-side script makes a request for data local to the Web server, and using a redirection mechanism to redirect the request as a request for data local to the Web server, instead of sending the request over a network connecting the client and the Web server; and
the Web server also identifying and stubbing-out at least one script functionality that is determined to be a client-side functionality that is inapplicable to the Web server when executing the client-side script in the enriched execution environment on the Web server, wherein the at least one script functionality comprises a client-side timer, and wherein stubbing-out the at least one script functionality comprises muffling the client-side timer such that the client-side timer does not raise any event when the client-side script is executed on the Web server;
the Web server extracting a text representation of the full initial content from the DOM; and
the Web server sending the text representation of the full initial content of the Web page to the client.
2 Assignments
0 Petitions
Accused Products
Abstract
In a distributed computing system including at least one server and at least one client, the server simulates and executes a client-side script that generates the initial content of a Web page. Specifically, the server simulates a client-side execution environment to run the client-side script that generates the initial content of the Web page. As a result, the initial rendering of the Web page that a server sends over to the client already contains the initial content that is usually generated on the client.
-
Citations
10 Claims
-
1. A method implemented at a Web server computing system that provides one or more Web pages for a client computing system to display and that includes a processor and memory storing instructions which, when executed by the processor, implement the method for enabling the Web server to provide full initial content of a Web page to the client computing system, wherein at least a part of the full initial content of the Web page was designed to be generated at the client computing system by the client executing a client-side script on traditional initial content of the Web page and the client making at least one request for data stored locally on the Web server, the method comprising:
-
the Web server executing a document object model (“
DOM”
) simulator to generate a DOM of the traditional initial content of the Web page, wherein the DOM models layout and static content of the Web page, and wherein the DOM also models scripts of the Web page;the Web server extracting, from the DOM, script tags corresponding to the traditional initial content of the Web page, wherein the script tags specify the client-side script that was designed to be executed by the client; the Web server constructing the client-side script by fetching content identified in the script tags according to a sequential ordering of the content in the script tags; the Web server executing the client-side script on the DOM to cause the DOM to contain the full initial content of the Web page, wherein the client-side script is executed using a server-side script engine that simulates a client-side script engine that would be used on the client, wherein the server-side script engine simulates an enriched execution environment in which the DOM is available to the client-side script as a built-in object, accessible through the same paths as if the DOM were on the client such that the DOM appears to the client-side script as if the client-side script were being executed on the client by the client-side script engine, and during execution of the client-side script on the DOM; the Web server detecting that the client-side script makes a request for data local to the Web server, and using a redirection mechanism to redirect the request as a request for data local to the Web server, instead of sending the request over a network connecting the client and the Web server; and the Web server also identifying and stubbing-out at least one script functionality that is determined to be a client-side functionality that is inapplicable to the Web server when executing the client-side script in the enriched execution environment on the Web server, wherein the at least one script functionality comprises a client-side timer, and wherein stubbing-out the at least one script functionality comprises muffling the client-side timer such that the client-side timer does not raise any event when the client-side script is executed on the Web server; the Web server extracting a text representation of the full initial content from the DOM; and the Web server sending the text representation of the full initial content of the Web page to the client. - View Dependent Claims (2, 3)
-
-
4. A Web server computer system that provides full initial content of a Web page to a client, wherein the full initial content of the Web page was designed to be generated at the client by the client executing a client-side script on traditional initial content of the Web page and the client making at least one request for data stored locally on the Web server, the Web server computer system comprising:
-
a processor; and memory storing computer-executable instructions which, when executed by the processor, which is coupled with the memory, implements a method comprising; the Web server executing a document object model (“
DOM”
) simulator to generate a DOM of the traditional initial content of the Web page, wherein the DOM models layout and static content of the Web page, and wherein the DOM also models scripts of the Web page;the Web server extracting from the DOM script elements corresponding to the traditional initial content of the Web page, wherein the script elements specify the client-side script that was designed to be executed by the client; the Web server constructing the client-side script comprising the script elements extracted from the DOM; the Web server executing the client-side script on the DOM to cause the DOM to contain the full initial content of the Web page, wherein the client-side script is executed using a server-side script engine that simulates a client-side script engine that would be used on the client, wherein the server-side script engine simulates an enriched execution environment in which the DOM is available to the client-side script as a built-in object, accessible through the same paths as if the DOM were on the client such that the DOM appears to the client-side script as if the client-side script were being executed on the client by the client-side script engine, and during execution of the client-side script on the DOM; the Web server detecting that the client-side script makes a request for data local to the Web server, and using a redirection mechanism to redirect the request as a request for data local to the Web server, instead of sending the request over a network connecting the client and the Web server; and the Web server also identifying and stubbing-out at least one script functionality that is determined to be a client-side functionality that is inapplicable to the Web server when executing the client-side script in the enriched execution environment on the Web server, wherein the at least one script functionality comprises a client-side timer, and wherein stubbing-out the at least one script functionality comprises muffling the client-side timer such that the client-side timer does not raise any event when the client-side script is executed on the Web server; the Web server extracting a text representation of the full initial content from the DOM; and the Web server sending the text representation of the full initial content of the Web page to the client. - View Dependent Claims (5)
-
-
6. A computer-readable storage medium storing computer executable instructions which, when executed by a processor, implement the following method:
-
executing, at a Web server, a document object model (“
DOM”
) simulator to generate a DOM of a traditional initial content of a Web page, wherein the DOM models layout and static content of the Web page, and wherein the DOM also models scripts of the Web page;extracting, at the Web server, from the DOM script elements corresponding to the traditional initial content of the Web page, wherein the script elements specify a client-side script that was designed to be executed by a client; constructing the client-side script comprising the script elements extracted from the DOM; executing, at the Web server, the client-side script on the DOM to cause the DOM to contain full initial content of the Web page, wherein the client-side script is executed using a server-side script engine that simulates a client-side script engine that would be used on the client, wherein the server-side script engine simulates an enriched execution environment in which the DOM is available to the client-side script as a built-in object, accessible through the same paths as if the DOM were on the client such that the DOM appears to the client-side script as if the new script were being executed on the client by the client-side script engine, and during execution of the client-side script on the DOM; the Web server detecting that the client-side script makes a request for data local to the Web server, and using a redirection mechanism to redirect the request as a request for data local to the Web server, instead of sending the request over a network connecting the client and the Web server; and the Web server also identifying and stubbing-out at least one script functionality that is determined to be a client-side functionality that is inapplicable to the Web server when executing the client-side script in the enriched execution environment on the Web server, wherein the at least one script functionality comprises a client-side timer, and wherein stubbing-out the at least one script functionality comprises muffling the client-side timer such that the client-side timer does not raise any event when the client-side script is executed on the Web server; extracting, at the Web server, a text representation of the full initial content from the DOM; and sending, from the Web server, the text representation of the full initial content of the Web page to the client. - View Dependent Claims (7)
-
-
8. A method implemented at a Web server computing system that provides one or more Web pages for a client computing system to display and that includes a processor and memory storing instructions which, when executed by the processor, implement the method for enabling the Web server to provide full initial content of a Web page to the client computing system, wherein at least a part of the full initial content of the Web page was designed to be generated at the client computing system by the client executing a client-side script on traditional initial content of the Web page and the client making at least one request for data stored locally on the Web server, the method comprising:
-
the Web server executing a document object model (“
DOM”
) simulator to generate a DOM of the traditional initial content of the Web page, wherein the DOM models layout and static content of the Web page, and wherein the DOM also models scripts of the Web page;the Web server extracting, from the DOM, script tags corresponding to the traditional initial content of the Web page, wherein the script tags specify the client-side script that was designed to be executed by the client; the Web server constructing the client-side script by fetching content identified in the script tags according to a sequential ordering of the content in the script tags; the Web server executing the client-side script on the DOM to cause the DOM to contain the full initial content of the Web page, wherein the client-side script is executed using a server-side script engine that simulates a client-side script engine that would be used on the client, wherein the server-side script engine simulates an enriched execution environment in which the DOM is available to the client-side script as a built-in object, accessible through the same paths as if the DOM were on the client such that the DOM appears to the client-side script as if the client-side script were being executed on the client by the client-side script engine, and during execution of the client-side script on the DOM; the Web server detecting that the client-side script makes a request for data local to the Web server, and using a redirection mechanism to redirect the request as a request for data local to the Web server, instead of sending the request over a network connecting the client and the Web server, wherein the request for data on the Web server comprises a XmlHttpRequest object for retrieving data, and wherein the redirection mechanism implements a different XmlHttpRequest object that directs to request to data local to the Web server, without making a network call; and the Web server also identifying and stubbing-out at least one script functionality that is determined to be a client-side functionality that is inapplicable to the Web server when executing the client-side script in the enriched execution environment on the Web server; the Web server extracting a text representation of the full initial content from the DOM; and the Web server sending the text representation of the full initial content of the Web page to the client.
-
-
9. A Web server computer system that provides full initial content of a Web page to a client, wherein the full initial content of the Web page was designed to be generated at the client by the client executing a client-side script on traditional initial content of the Web page and the client making at least one request for data stored locally on the Web server, the Web server computer system comprising:
-
a processor; and memory storing computer-executable instructions which, when executed by the processor, which is coupled with the memory, implements a method comprising; the Web server executing a document object model (“
DOM”
) simulator to generate a DOM of the traditional initial content of the Web page, wherein the DOM models layout and static content of the Web page, and wherein the DOM also models scripts of the Web page;the Web server extracting from the DOM script elements corresponding to the traditional initial content of the Web page, wherein the script elements specify the client-side script that was designed to be executed by the client; the Web server constructing the client-side script comprising the script elements extracted from the DOM; the Web server executing the client-side script on the DOM to cause the DOM to contain the full initial content of the Web page, wherein the client-side script is executed using a server-side script engine that simulates a client-side script engine that would be used on the client, wherein the server-side script engine simulates an enriched execution environment in which the DOM is available to the client-side script as a built-in object, accessible through the same paths as if the DOM were on the client such that the DOM appears to the client-side script as if the client-side script were being executed on the client by the client-side script engine, and during execution of the client-side script on the DOM; the Web server detecting that the client-side script makes a request for data local to the Web server, and using a redirection mechanism to redirect the request as a request for data local to the Web server, instead of sending the request over a network connecting the client and the Web server, wherein the request for data on the Web server comprises a XmlHttpRequest object for retrieving data, and wherein the redirection mechanism implements a different XmlHttpRequest object that directs to request to data local to the Web server, without making a network call; and the Web server also identifying and stubbing-out at least one script functionality that is determined to be a client-side functionality that is inapplicable to the Web server when executing the client-side script in the enriched execution environment on the Web server, wherein the at least one script functionality comprises a client-side timer, and wherein stubbing-out the at least one script functionality comprises muffling the client-side timer such that the client-side timer does not raise any event when the client-side script is executed on the Web server; the Web server extracting a text representation of the full initial content from the DOM; and the Web server sending the text representation of the full initial content of the Web page to the client.
-
-
10. A computer-readable storage medium storing computer executable instructions which, when executed by a processor, implement the following method:
-
executing, at a Web server, a document object model (“
DOM”
) simulator to generate a DOM of a traditional initial content of a Web page, wherein the DOM models layout and static content of the Web page, and wherein the DOM also models scripts of the Web page;extracting, at the Web server, from the DOM script elements corresponding to the traditional initial content of the Web page, wherein the script elements specify a client-side script that was designed to be executed by a client; constructing the client-side script comprising the script elements extracted from the DOM; executing, at the Web server, the client-side script on the DOM to cause the DOM to contain full initial content of the Web page, wherein the client-side script is executed using a server-side script engine that simulates a client-side script engine that would be used on the client, wherein the server-side script engine simulates an enriched execution environment in which the DOM is available to the client-side script as a built-in object, accessible through the same paths as if the DOM were on the client such that the DOM appears to the client-side script as if the new script were being executed on the client by the client-side script engine, and during execution of the client-side script on the DOM; the Web server detecting that the client-side script makes a request for data local to the Web server, and using a redirection mechanism to redirect the request as a request for data local to the Web server, instead of sending the request over a network connecting the client and the Web server, wherein the request for data on the Web server comprises a XmlHttpRequest object for retrieving data, and wherein the redirection mechanism implements a different XmlHttpRequest object that directs to request to data local to the Web server, without making a network call; and the Web server also identifying and stubbing-out at least one script functionality that is determined to be a client-side functionality that is inapplicable to the Web server when executing the client-side script in the enriched execution environment on the Web server, wherein the at least one script functionality comprises a client-side timer, and wherein stubbing-out the at least one script functionality comprises muffling the client-side timer such that the client-side timer does not raise any event when the client-side script is executed on the Web server; extracting, at the Web server, a text representation of the full initial content from the DOM; and sending, from the Web server, the text representation of the full initial content of the Web page to the client.
-
Specification