WO2017113963A1 - 一种静态化页面的处理方法及装置 - Google Patents
一种静态化页面的处理方法及装置 Download PDFInfo
- Publication number
- WO2017113963A1 WO2017113963A1 PCT/CN2016/103418 CN2016103418W WO2017113963A1 WO 2017113963 A1 WO2017113963 A1 WO 2017113963A1 CN 2016103418 W CN2016103418 W CN 2016103418W WO 2017113963 A1 WO2017113963 A1 WO 2017113963A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- script
- page
- variable
- code
- client
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Definitions
- the embodiments of the present invention relate to the field of computer technologies, and in particular, to a method and an apparatus for processing a static page.
- Model View Control which is an abbreviation of Model, View and Control.
- a view is an interface that a user can see and interact with.
- the model represents business data and business logic between business data.
- the controller receives the user's input and invokes the model and view to complete the user's needs.
- the current client MVC framework includes both client and server.
- the client includes a browser
- the server includes a resource server and an application server.
- the browser accesses the resource server to obtain the code file corresponding to the page, and then executes the code file through a javascript (referred to as js) engine, and invokes the application server to acquire model data and view data during execution.
- js javascript
- the obtained model data is bound to the view data to obtain an interface presented to the user.
- Dynamic page technology is widely used because of its strong interactivity and real-time data refreshing.
- users need to access the server frequently when using it, thus wasting resources and extending access time.
- a static page is generated, and the static page is a static file stored on the server side and directly running on the client.
- the hypertext markup language English: Hyper Text Markup Language, HTML for short
- HTML Hyper Text Markup Language
- the embodiment of the invention provides a method and a device for processing a static page, which are used to solve the problem that the business interaction logic in the prior art is incorrect or the model related data is re-invited to the server to cause an unnecessary burden on the server.
- an embodiment of the present invention provides a method for processing a static page. Methods include:
- the server receives the page request sent by the client, where the page request carries the page identifier of the page requested by the client; the server obtains the first static hypertext markup language HTML page corresponding to the stored page identifier,
- the first static HTML page includes an HTML tag, a first script code, and a second script code, the first script code including a definition or a statement of a script variable of a page requested by the client, the second script
- the code is configured to update a script variable value of at least one of the first script code; the server sends the first static HTML page to the client.
- the page identifier may be a Uniform Resource Locator (English: Uniform Resource Locator, abbreviated as: URL).
- the script code may be script code of Javascript, script code of ActionScript, or script code of VBscript, and may of course be script code of other types of script language description.
- the first static HTML page is generated as follows:
- the server side performs simulated rendering on the page requested by the client corresponding to the page identifier to obtain a second static HTML page, where the second static HTML page includes the HTML tag and the first script a code; the server side acquires a script variable value of the at least one script variable after the simulated rendering; the server side constructs the second script code based on a script variable value of at least one script variable; The second script code is inserted into the last piece of script code in the second static HTML page to obtain the first static HTML page.
- Analog rendering refers to the process of rendering a page rendered by a client browser using a tool such as a script engine.
- the client after inserting the second script code into the last piece of the script code of the second static HTML page, the client performs the rendering of the page and then assigns the script variable to prevent the logic from appearing when the code is executed. error.
- the second script code includes at least one assignment statement, and the at least one assignment statement is used to update a script variable value of the at least one script variable.
- the second script code includes at least one serialization string and a deserialization instruction; the at least one serialization string is serialized by a script variable value of the at least one script variable;
- the deserialization instruction is used to instruct the client to deserialize the at least one serialized string and assign the deserialized result to the at least one script variable.
- the serialized string is a Javascript object notation format string or an extensible markup language XML format string.
- the server side obtains the value of the script variable of the at least one script variable after the simulated rendering, which can be implemented by:
- the server side queries the rendering configuration corresponding to the page identifier; the rendering configuration includes a script variable identifier corresponding to a script variable that needs to be updated by the client to the page corresponding to the page identifier; The script variable identifies the corresponding script variable value.
- the server obtains a script change corresponding to the script variable identifier.
- Quantity including:
- the server side acquires a script variable value corresponding to the script variable identifier by using an application programming interface API of the script engine.
- the script language corresponding to the script variable is Javascript or ActionScript language ActionScript.
- an embodiment of the present invention provides a method for processing a static page. Methods include:
- the client sends a page request to the server, where the page request carries the page identifier of the page requested by the client; the client receives the first static HTML page corresponding to the page identifier sent by the server,
- the first static HTML page includes an HTML tag, a first script code, and a second script code, the first script code including a definition or a statement of a script variable in a page requested by the client, the second script code a script variable value for updating at least one script variable in the first script code; the client rendering a page requested by the client according to the HTML tag and the first script code; the client Updating a script variable value of at least one script variable in the first script code according to the second script code.
- the second script code includes at least one assignment statement, and the at least one assignment statement is used to update a script variable value of the at least one script variable;
- the client updates the script variable value of the at least one script variable in the first script code according to the second script code, and can be implemented as follows:
- the client executes the at least one assignment statement to update a script variable value of the at least one script variable.
- the second script code includes at least one serialization string and a deserialization instruction;
- the at least one serialization string is serialized by a script variable value of the at least one script variable;
- the deserialization instruction is configured to instruct the client to perform deserialization processing on the at least one serialized character string, and assign the deserialized processed result to the at least one script variable;
- the client updates the script variable value of the at least one script variable in the first script code according to the second script code, and can be implemented as follows:
- the client executing the deserialization instruction to deserialize the at least one serialized string to obtain a script variable value of the at least one script variable, and assigning a value of the script variable of the at least one script variable to The at least one script variable in the first script code.
- the second script code is the last piece of script code in the static page.
- an embodiment of the present invention provides a processing device for a static page, where the device is applied to a server, and includes:
- a routing module configured to receive a page request sent by the client, where the page request carries a page identifier of a page requested by the client;
- a cache module configured to store, for the static HTML page of the page to be stored, the first static HTML page includes an HTML tag, a first script code, and a second script code, where the first script code includes the a definition or declaration of a script variable of a page requested by the client, the second script code for updating a script variable value of at least one script variable in the first script code;
- the routing module is further configured to: obtain, by the cache module, the first static HTML page corresponding to the stored page identifier; and then send the first static HTML page to the client.
- the device also includes:
- the scheduling module is configured to send a rendering notification to the rendering module, where the rendering notification carries a page identifier that needs to be rendered;
- the rendering module is configured to: after receiving the rendering notification sent by the rendering module, performing simulation rendering on the page requested by the client corresponding to the page identifier to obtain a second static HTML page, where the second The static HTML page includes the HTML tag and the first script code; acquiring a script variable value of the at least one script variable after the simulated rendering; constructing the second based on a script variable value of the at least one script variable Script code; inserting the second script code into the last piece of script code in the second static HTML page to obtain the first static An HTML page, and instructing the cache module to store the first static HTML page.
- the second script code includes at least one assignment statement, and the at least one assignment statement is used to update a script variable value of the at least one script variable.
- the second script code includes at least one serialized string and a deserialization instruction; the at least one serialized string is obtained by serializing a script variable value of the at least one script variable.
- the deserialization instruction is configured to instruct the client to deserialize the at least one serialized string, and assign the deserialized result to the at least one script variable.
- the serialized string is a Javascript object notation format string or an extensible markup language XML format string.
- the device also includes:
- a configuration module configured to configure a rendering configuration, where the rendering configuration includes a script variable identifier corresponding to a script variable that needs to be updated by the client to the page corresponding to the page identifier;
- the rendering module is configured to: query a script variable identifier corresponding to the page identifier included in a rendering configuration configured by the configuration module, and obtain a script variable value of the at least one script variable after the simulation is performed, and obtain The script variable identifies a corresponding script variable value.
- the rendering module when the rendering module obtains the value of the script variable corresponding to the script variable identifier, the rendering module is specifically configured to:
- the script variable value corresponding to the script variable identifier is obtained through an application programming interface API of the script engine.
- the script language corresponding to the script variable is Javascript or ActionScript language ActionScript.
- an embodiment of the present invention provides a processing apparatus for a static page.
- the device is applied to the client.
- the device includes:
- a sending module configured to send a page request to the server, where the page request carries a page identifier of a page requested by the client;
- Receiving module receiving, by the server, the first static HTML corresponding to the page identifier a page, the first static HTML page includes an HTML tag, a first script code, and a second script code, the first script code including a definition or a statement of a script variable in a page requested by the client, the first The second script code is configured to update a script variable value of at least one script variable in the first script code;
- a page rendering module configured to render, according to the HTML tag received by the receiving module, the first script code as a page requested by the client, and according to the second script code received by the receiving module Updating the script variable value of at least one script variable in the first script code.
- the second script code includes at least one assignment statement, and the at least one assignment statement is used to update a script variable value of the at least one script variable;
- a page rendering module when updating the value of the script variable of the at least one script variable in the first script code according to the second script code, specifically:
- Executing the at least one assignment statement updates the script variable value of the at least one script variable.
- the second script code includes at least one serialization string and a deserialization instruction;
- the at least one serialization string is serialized by a script variable value of the at least one script variable;
- the deserialization instruction is configured to instruct the client to perform deserialization processing on the at least one serialized character string, and assign the deserialized processed result to the at least one script variable;
- the page rendering module is configured to: when updating the value of the script variable of the at least one script variable in the first script code according to the second script code, specifically:
- the second script code is the last piece of script code in the first static HTML page.
- Processing is performed on rendered static HTML pages as the page is rendered and cached
- the script code that carries the model in the rendering process is cached, so that when the client renders the static page, the script code that carries the model in the rendering process is re-rendered, which avoids changes due to the value of the script variable.
- the resulting business interaction is logically wrong, and there is no longer a need to call model-related data to the server, thereby increasing the burden on the server and not wasting server resources.
- FIG. 1 is a schematic diagram of a ClientMVC framework according to an embodiment of the present invention
- FIG. 2 is a schematic structural diagram of a client according to an embodiment of the present invention.
- FIG. 3 is a schematic structural diagram of a server end according to an embodiment of the present disclosure.
- FIG. 4 is a schematic diagram of static page processing performed by each module in a client and a server according to an embodiment of the present invention
- FIG. 5 is a schematic diagram of a method for generating a first static HTML page by a server according to an embodiment of the present disclosure
- FIG. 6 is a schematic diagram of another method for generating a first static HTML page by a server according to an embodiment of the present disclosure
- FIG. 7 is a flowchart of a method for processing a static page according to an embodiment of the present invention.
- the embodiment of the invention provides a method and a device for processing a static page, which are used to solve the problem that the business interaction logic in the prior art is incorrect or the model related data is re-invited to the server to cause an unnecessary burden on the server.
- the method and the device are based on the same inventive concept, and since the principles of the method and the device for solving the problem are similar, the implementation of the device and the method can refer to each other, The details are not repeated here.
- the embodiment of the invention is applied to the ClientMVC framework.
- the ClientMVC framework includes a client 200 and a server 100, and the client 200 can execute controller, model, and view functions.
- a processing device 200a for implementing a static page of a client 200 function includes: a sending module 201, a receiving module 202 and a page rendering module 203.
- a processing device 100a for implementing a static page of a server 100 function includes a routing module 101 and a cache module 102.
- FIG. 4 is a schematic diagram of static page processing performed by each module in the client 200 and the server 100 according to an embodiment of the present invention.
- the sending module 201 of the client 200 sends a page request to the server 100, where the page request carries the page identifier of the page requested by the client 200.
- the routing module 101 of the server 100 receives the page request.
- the routing module 101 receives a page request sent by the client 200, and the page request carries the page identifier.
- the page identifier may be a Uniform Resource Locator (English: Uniform Resource Locator, abbreviated as: URL).
- the cache module 102 is configured to store, for the static HTML page of the page to be stored, the first static HTML page includes an HTML tag, a first script code, and a second script code, where the first script code includes Defining or declaring a script variable of a page requested by the client 200, the second script code for updating a script variable value of at least one script variable in the first script code.
- the script code may be script code of Javascript, script code of ActionScript, or script code of VBscript, and may also be script code of other types of script language description, which is not used in the embodiment of the present invention. Specifically limited.
- the routing module 101 is further configured to obtain the stored page label from the cache module 102. Corresponding to the static HTML page; the first static HTML page is then sent to the client 200.
- the receiving module 202 of the client 200 receives the first static HTML page corresponding to the page identifier by the routing module 101 of the server 100, and the first static HTML page includes an HTML tag, a first script code, and a a second script code, the first script code including a definition or a statement of a script variable in a page requested by the client 200, the second script code being used to update at least one script variable in the first script code Script variable value.
- the page rendering module 203 of the client 200 is configured to render the page requested by the client 200 according to the HTML tag received by the receiving module 202 and the first script code, and receive according to the receiving module 202.
- the second script code that arrives updates the script variable value of at least one script variable in the first script code.
- the processing device 100a that implements the static-page of the server-side 100 function further includes: a scheduling module 103 and a rendering module 105.
- the processing device 100a that implements the static page of the server-side 100 function generates the first static HTML page through the scheduling module 103 and the rendering module 105, as shown in FIG. 5.
- the scheduling module 103 sends a rendering notification to the rendering module 105.
- the rendering notification carries a page identifier that needs to be rendered.
- the rendering module 105 receives the rendering notification, and then the rendering module 105 acquires a second static HTML page corresponding to the page identifier.
- the second static HTML page includes the HTML tag and the first script code; and acquires a script variable value of the at least one script variable after the simulated rendering.
- the second static HTML page is not inserted into the second script code, that is, the static HTML cached in the prior art. page.
- Analog rendering refers to the process of rendering a page rendered by a client browser using a tool such as a script engine.
- the rendering module 105 can identify the corresponding location of the page by using a script engine.
- the page requested by the client 200 performs simulated rendering to obtain a second static HTML page.
- the script engine may be a javascript engine, or may be a scripting engine corresponding to other scripting languages, which is not specifically limited in the embodiment of the present invention.
- the second static HTML page is obtained by directly calling the corresponding ClientMVC framework method by using a javascript engine.
- the rendering module 105 constructs the second script code based on a script variable value of at least one script variable.
- the second script code may be a script code of javascript, a script code of Actionscript, or a script code corresponding to another scripting language.
- the second script code is then built based on the script variable value of the at least one script variable, the second script code being used to update the script variable value of the at least one script variable in the first script code.
- the rendering module 105 inserts the second script code into the last piece of script code in the second static HTML page to obtain the first static HTML page.
- the second script code is shown below.
- the code corresponding to the first static HTML page obtained after inserting the second script code into the last piece of script code in the second static HTML page is as follows:
- the rendering module 105 sends a cache notification to the cache module 102.
- the cache notification is used to instruct the cache module 102 to store the first static HTML page.
- the second script code includes at least one assignment statement, and the at least one assignment statement is used to update a script variable value of the at least one script variable.
- the script variables here are A and B, respectively, for updating the value of A to 1, and the value of B to "1111".
- the page rendering module 203 is in accordance with the second script code pair When the value of the script variable of the at least one script variable in the first script code is updated, specifically executing the at least one assignment statement to update the value of the script variable of the at least one script variable.
- the second script code includes at least one serialized string and a deserialization index
- the at least one serialized string is obtained by serializing a script variable value of the at least one script variable; the deserialization instruction is used to instruct the client 200 to perform the at least one serialized string Deserializing the process and assigning the deserialized result to the at least one script variable.
- the rendering module 105 obtains the script variable value of the at least one script variable
- the script variable value of the at least one script variable is serialized into a character string.
- the second script code is then constructed based on the serialized string.
- the serialization processing algorithm may adopt any algorithm supported by the client, and specifically may use a Javascript object notation (English: Javascript Object Notation, referred to as: json)
- a serialization algorithm or an Extensible Markup Language (XML) serialization algorithm or the like serializes the script variable value into a string.
- XML Extensible Markup Language
- the script variable value that needs to be sent to the client 200 at least one script variable is also the script variable value corresponding to the model.
- the page rendering module 203 is at least one of the first script codes according to the second script code.
- the variable's script variable value is updated, it is used to:
- the processing device 100a that implements the static page of the server-side 100 function may further include a configuration module 104.
- the configuration module 104 is configured to configure a rendering configuration, where the rendering configuration includes a script variable corresponding to a script variable that requires the client 200 to update a page corresponding to the page identifier.
- Quantity identification That is, the script variable identifier configured in the configuration module 104 is for multiple pages, so when configured, the correspondence between the page identifier and the script variable identifier is configured.
- the script variable identifiers configured in the configuration module 104 are not all script variables on a page, but script variables that need to be cached. Therefore, all configured in the configuration module 104 are script variable identifiers that need to be cached for a certain page.
- the script variable identifier configured therein is also the value of the script variable corresponding to the script variable identifier in the cached second static HTML page.
- the processing device 100a that implements the static page of the server 100 function generates the static page content through the scheduling module 103, the configuration module 104, and the rendering module 105, as shown in FIG. 6.
- the scheduling module 103 sends a rendering notification to the rendering module 105.
- the rendering notification carries a page identifier that needs to be rendered.
- the rendering module 105 receives the rendering notification, and then the rendering module 105 acquires a second static HTML page corresponding to the page identifier.
- the rendering module 105 queries the rendering variable configured by the configuration module 104 to include a script variable identifier corresponding to the page identifier.
- the rendering module 105 acquires a script variable value corresponding to the script variable identifier.
- the script variable that needs to be cached may have a modified script variable value, so the script variable value corresponding to the script variable identifier needs to be obtained here.
- the script variable value corresponding to the script variable identifier may be obtained through an application programming interface (English: Application Programming Interface, API for short) of the script engine.
- the rendering module 105 constructs the second script code based on a script variable value of at least one script variable.
- the rendering module 105 inserts the second script code into the last piece of script code in the second static HTML page to obtain the first static HTML page.
- the rendering module 105 sends a cache notification to the cache module 102.
- the cache notification is used to instruct the cache module 102 to store the first static HTML page.
- the configuration module 104 is further configured with a static execution task defined for the URL.
- a static cache refresh policy is also specified in the static execution task.
- the static cache refresh policy may be performed periodically, that is, the page corresponding to the targeted URL is statically cached every predetermined time period.
- the static refresh policy may also be an event notification execution. For example, the user subscribes to a certain business event, and when receiving the subscription of the business event notification, statically caches the page corresponding to the targeted URL. Therefore, the scheduling module 103 can perform scheduling by statically buffering the refresh policy when performing task scheduling on the static configuration configured in the configuration module 104.
- a routing policy can also be configured in the configuration module 104.
- the routing policy is used to specify whether the static cache queue is enabled for the page corresponding to the URL and the configuration data to be used in the routing decision process. Therefore, after receiving the page request sent by the client 200, the routing module 101 queries the configuration module 104 whether the static cache route has been enabled for the page corresponding to the URL carried in the page request, and if it is enabled, according to the configuration data.
- the cache module 102 queries the cached result, which is also the static HTML page of the page corresponding to the URL, and includes the script code for updating the value of the script variable of the script variable in the static HTML page obtained after the rendering.
- a configuration policy can also be configured in the configuration module 104.
- the storage policy is used to specify the storage policy after the page corresponding to the URL. For example, hotspot data is stored in local memory or distributed memory, and other data is stored on disk.
- the cache module 102 queries the storage policy configured in the configuration module when receiving the notification of the first static HTML page cache obtained by inserting the constructed second script code into the second static HTML page sent by the rendering module. Inserting, by the queried storage policy, the first static HTML page cache obtained by inserting the second static HTML page into the second static HTML code.
- each functional unit in each embodiment of the present application may be integrated into one processing. In the device, it may be physically present alone, or two or more units may be integrated in one unit.
- the above integrated unit can be implemented in the form of hardware or in the form of a software function module.
- the physical hardware of the client 200 corresponding to the sending module 201, the receiving module 202, and the page rendering module 203 may be a processor.
- the physical hardware of the server module 100 corresponding to the routing module 101, the caching module 102, the scheduling module 103, the configuration module 104, and the rendering module 105 may be a processor.
- the processor can be a central processing unit (English: central processing unit, CPU for short), or a digital processing unit or the like.
- the client 200 further includes a memory for storing a program executed by a processor in the client 200, and a processor for executing a program stored in the memory.
- the server side 100 also includes a memory for storing programs executed by the processor in the server side 100.
- the memory in server side 100 is also used to store static page content.
- the memory may be a volatile memory (English: volatile memory), such as random access memory (English: random-access memory, abbreviation: RAM); the memory may also be non-volatile memory (English: non-volatile memory), for example Read-only memory (English: read-only memory, abbreviation: ROM), flash memory (English: flash memory), hard disk (English: hard disk drive, abbreviation: HDD) or solid state drive (English: solid-state drive, abbreviation :SSD), or memory, is any other medium that can be used to carry or store desired program code in the form of an instruction or data structure and that can be accessed by a computer, but is not limited thereto.
- the memory can be a combination of the above memories.
- the process saves the second static HTML page after the rendering, and the second script code of the hosted model in the rendering process is cached.
- a static HTML page the server sends the first static HTML page to the client, that is, inserts corresponding processing logic into the generated page, thereby ensuring that the host uses the host when rendering the static page.
- the second script code of the model is re-rendered and the second script code is used to reassign the script variables that need to be updated, so Prove that the script execution context of the page is consistent with that before the static page is saved, ensuring the consistency of the user interaction logic, and ensuring the execution logic after the static cache is enabled in the ClientMVC framework and when the static cache is not enabled.
- the execution logic is consistent, which avoids the logical error of the business interaction caused by the change of the value of the script variable, so that it is no longer necessary to call the model related data to the server, thereby increasing the burden on the server and saving the server resources.
- the embodiment of the invention further provides a method for processing a static page. As shown in FIG. 7, the method includes:
- the client sends a page request to the server.
- the page request carries a page identifier of a page requested by the client.
- the page identifier can be a URL.
- the server end receives a page request sent by a client.
- the server obtains the first static HTML page corresponding to the stored page identifier.
- the first static HTML page includes an HTML tag, a first script code, and a second script code, where the first script code includes a definition or a statement of a script variable of the page requested by the client, where the first The second script code is for updating a script variable value of at least one script variable in the first script code.
- the server sends the first static HTML page to the client.
- the client receives the first static HTML page corresponding to the page identifier sent by the server.
- the first static HTML page includes an HTML tag, a first script code, and a second script code, the first script code including a definition or a statement of a script variable in a page requested by the client, the second script
- the code is for updating a script variable value of at least one script variable in the first script code.
- the client renders the page requested by the client according to the HTML tag and the first script code, and compares at least one script variable in the first script code according to the second script code.
- the script variable values are updated.
- the first static HTML page is generated by:
- the server performs a template on the page requested by the client corresponding to the page identifier. To be rendered, to obtain a second static HTML page, the second static HTML page including the HTML tag and the first script code;
- the server end acquires a script variable value of the at least one script variable after the simulated rendering.
- the server end in the A2 obtains the script variable value of the at least one script variable after the simulated rendering
- the method may be implemented as follows:
- the server side queries a rendering configuration corresponding to the page identifier;
- the rendering configuration includes a script variable identifier corresponding to a script variable that needs to be updated by the client to the page corresponding to the page identifier;
- the server acquires a script variable value corresponding to the script variable identifier.
- the server obtains the value of the script variable corresponding to the script variable identifier, which can be implemented as follows:
- the server side acquires a script variable value corresponding to the script variable identifier by using an application programming interface API of the script engine.
- the script language corresponding to the script variable is Javascript or ActionScript language ActionScript.
- the second script code includes at least one assignment statement, and the at least one assignment statement is used to update a script variable value of the at least one script variable.
- the second script code includes at least one serialized character string and a deserialization instruction; the at least one serialized character string is serialized by a script variable value of the at least one script variable;
- the serialization instruction is configured to instruct the client to deserialize the at least one serialized string and assign the deserialized result to the at least one script variable.
- the at least one serialized string is serialized by the script variable value of the at least one script variable, and the server is configured to: after obtaining the script variable value of the at least one script variable, the script The variable value is serialized to get the serialized string, and then the second script code is constructed based on the serialized string.
- the server side serializes the script variable value to obtain a serialized string, which can be passed Implemented as follows:
- the server side serializes the script variable value to obtain a serialized string using a json serialization algorithm or an XML serialization algorithm or the like.
- the server side constructs the second script code based on a script variable value of at least one script variable.
- the server inserts the second script code into the last piece of script code in the second static HTML page to obtain the first static HTML page.
- At least one assignment statement is included in the second script code, where the at least one assignment statement is used to update a script variable value of the at least one script variable, the client according to the second script
- the code updates the value of the script variable of the at least one script variable in the first script code, and can be implemented as follows:
- the client executes the at least one assignment statement to update a script variable value of the at least one script variable.
- the second script code includes at least one serialized character string and a deserialization instruction; the at least one serialized character string is serialized by a script variable value of the at least one script variable;
- the serialization instruction is configured to instruct the client to perform deserialization processing on the at least one serialized character string, and assign the deserialized processed result to the at least one script variable, where
- the client updates the script variable value of the at least one script variable in the first script code according to the second script code, and can be implemented as follows:
- the client executing the deserialization instruction to deserialize the at least one serialized string to obtain a script variable value of the at least one script variable, and assigning a value of the script variable of the at least one script variable to The at least one script variable in the first script code.
- the solution provided by the embodiment of the present invention saves the HTML code of the staticized page for rendering when the page is rendered and cached, and caches the script code of the hosted model during the rendering process, and the server side
- the hypertext markup language HTML code of the static page and the script code corresponding to the model used for rendering the static page are sent to the client, that is, the corresponding processing logic is inserted in the generated static page, so Guaranteed to be quiet on the client side
- the script code that carries the model in the rendering process is re-rendered. Therefore, it can be ensured that the script execution context of the page is consistent with that before the static page is saved, thus ensuring the consistency of the user interaction logic.
- embodiments of the present invention can be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
- computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
- the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
- the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
- These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
- the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种静态化页面的处理方法及装置,用以解决现有技术中存在的业务交互逻辑上出现错误或者重新向服务器调用模型相关数据会给服务器造成不必要的负担的问题。服务器端缓存的第一静态化HTML页面中不仅仅包括HTML标签、用于对页面的脚本变量的定义或声明的第一脚本代码,还包括了用于更新第一脚本代码中的至少一个脚本变量的脚本变量值的第二脚本代码,从而客户端在向服务器端请求页面时,服务器端将包括了所述第二脚本代码的第一静态化HTML页面发送给客户端,客户端根据HTML标签以及第一脚本代码渲染为客户端请求的页面后,根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新。
Description
本申请要求于2015年12月31日提交中国专利局、申请号为201511030782.4,发明名称为“一种静态化页面的处理方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本发明实施例涉及计算机技术领域,尤其涉及一种静态化页面的处理方法及装置。
MVC英文全称是Model View Control,是模型(Model)、视图(View)以及控制器(Control)的缩写。视图是用户能够看到的并与之交互的界面。模型表示业务数据以及业务数据之间的业务逻辑。控制器接收用户的输入并调用模型和视图来完成用户的需求。
目前的客户端(Client)MVC框架包括客户端以及服务器端。客户端包括浏览器,服务器端包括资源服务器以及应用服务器。浏览器在接收到用户提交的页面请求后,访问资源服务器获取所述页面对应的代码文件,然后通过javascript(简称js)引擎执行所述代码文件,执行过程中调用应用服务器获取模型数据以及视图数据,最后将获取到的模型数据与视图数据绑定获得界面呈现给用户。
动态页面技术因为其交互性强,数据刷新实时等特点被广泛地应用,但是针对动态网页,用户在使用时,需要频繁的访问服务器因此浪费了资源以及延长了访问时间。从而产生了静态化页面,静态化页面是存储于服务器端可直接运行于客户端的静态文件。在用户访问时,不需要再通过接口动态访问服务器端资源,直接从服务器端将超文本标记语言(英文:Hyper Text Markup Language,简称:HTML)代码反馈到客户端,从而在客户端使用HTML代码将页面显示给用户。
目前的静态化技术中仅存储了生成的静态化页面对应的HTML代码,但是在ClientMVC框架中,控制器进行页面行为控制时还需要模型相关数据进行决策,因此在存储了HTML代码的情况下可能会导致业务交互逻辑上出现错误或者重新向服务器调用模型相关数据会给服务器造成不必要的负担。
发明内容
本发明实施例提供一种静态化页面的处理方法及装置,用以解决现有技术中存在的业务交互逻辑上出现错误或者重新向服务器调用模型相关数据会给服务器造成不必要的负担的问题。
第一方面,本发明实施例提供了一种静态化页面的处理方法。方法包括:
服务器端接收客户端发送的页面请求,所述页面请求携带所述客户端请求的页面的页面标识;所述服务器端获取存储的所述页面标识对应的第一静态化超文本标记语言HTML页面,所述第一静态化HTML页面中包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值;所述服务器端将所述第一静态化HTML页面发送给所述客户端。
所述页面标识可以是统一资源定位符(英文:Uniform Resource Locator,简称:URL)。脚本代码可以是Javascript的脚本代码、或者动作脚本语言(Actionscript)的脚本代码、或者VBscript的脚本代码,当然还可以是其他类型的脚本语言描述的脚本代码。
由于在对页面进行渲染并缓存时,处理针对渲染的静态化HTML页面进行保存外,同时对渲染过程中承载模型的脚本代码进行了缓存,因此能够保证在客户端对静态化页面进行呈现时,使用渲染过程中承载模型的脚本代码重新渲染,避免了由于脚本变量值变化导致的业务交互逻辑上出错,同时也不再需要向服务器调用模型相关数据,从而不会增加服务器的负担以及不会浪费服务器资源。
在一个可能的设计中,所述第一静态化HTML页面通过如下方式生成:
所述服务器端对所述页面标识所对应的所述客户端请求的页面进行模拟渲染,获得第二静态化HTML页面,所述第二静态化HTML页面包括所述HTML标签以及所述第一脚本代码;所述服务器端获取所述模拟渲染后所述至少一个脚本变量的脚本变量值;所述服务器端基于至少一个脚本变量的脚本变量值构建所述第二脚本代码;所述服务器端将所述第二脚本代码插入到所述第二静态化HTML页面中最后一段脚本代码之后以获得所述第一静态化HTML页面。
模拟渲染是指服务器端借助脚本引擎等工具,模拟客户端浏览器对页面进行渲染的过程。
上述设计中,通过将第二脚本代码插入到所述第二静态化HTML页面最后一段脚本代码之后,从而使得客户端在执行代码时,先进行页面的渲染再进行脚本变量的赋值,防止出现逻辑错误。
在一个可能的设计中,所述第二脚本代码包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值。
在一个可能的设计中,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串由所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量。
在一个可能的设计中,所述序列化字符串为Javascript对象表示法格式字符串或者可扩展标记语言XML格式字符串。
在一个可能的设计中,所述服务器端获取所述模拟渲染后所述至少一个脚本变量的脚本变量值,可以通过通过如下方式实现:
所述服务器端查询所述页面标识对应的渲染配置;所述渲染配置包括需要所述客户端对所述页面标识对应的页面进行更新的脚本变量所对应的脚本变量标识;所述服务器端获取所述脚本变量标识对应的脚本变量值。
在一个可能的设计中,所述服务器端获取所述脚本变量标识对应的脚本变
量值,包括:
所述服务器端通过脚本引擎的应用程序编程接口API获取所述脚本变量标识对应的脚本变量值。
在一个可能的设计中,所述脚本变量对应的脚本语言为Javascript或者动作脚本语言ActionScript。
第二方面,本发明实施例提供了一种静态化页面的处理方法。方法包括:
客户端向服务器端发送页面请求,所述页面请求携带所述客户端请求的页面的页面标识;所述客户端接收所述服务器端发送基于所述页面标识对应的第一静态化HTML页面,所述第一静态化HTML页面包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面中的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值;所述客户端根据所述HTML标签以及所述第一脚本代码渲染为所述客户端请求的页面;所述客户端根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新。
在一个可能的设计中,所述第二脚本代码中包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值;
所述客户端根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新,可以通过如下方式实现:
所述客户端执行所述至少一条赋值语句对所述至少一个脚本变量的脚本变量值进行更新。
在一个可能的设计中,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串由所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量;
所述客户端根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新,可以通过如下方式实现:
所述客户端执行所述反序列化指令将所述至少一个序列化字符串反序列化处理得到所述至少一个脚本变量的脚本变量值,并将所述至少一个脚本变量的脚本变量值赋值给所述第一脚本代码中的所述至少一个脚本变量。
在一个可能的设计中,所述第二脚本代码为所述静态化页面中最后一段脚本代码。
第三方面,本发明实施例提供了一种静态化页面的处理装置,该装置应用于服务器端,包括:
路由模块,用于接收客户端发送的页面请求,所述页面请求携带所述客户端请求的页面的页面标识;
缓存模块,用于针对需存储的页面的静态化HTML页面进行存储,所述第一静态化HTML页面中包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值;
所述路由模块,还用于向所述缓存模块中获取存储的所述页面标识对应的所述第一静态化HTML页面;然后将所述第一静态化HTML页面发送给所述客户端。
在一个可能的设计中,该装置还包括:
调度模块以及渲染模块;
所述调度模块,用于向所述渲染模块发送渲染通知,所述渲染通知携带需要渲染的页面标识;
所述渲染模块,用于在接收到所述渲染模块发送的渲染通知后,对所述页面标识所对应的所述客户端请求的页面进行模拟渲染获得第二静态化HTML页面,所述第二静态化HTML页面包括所述HTML标签以及所述第一脚本代码;获取所述模拟渲染后所述至少一个脚本变量的脚本变量值;基于所述至少一个脚本变量的脚本变量值构建所述第二脚本代码;将所述第二脚本代码插入到所述第二静态化HTML页面中最后一段脚本代码之后以获得所述第一静态化
HTML页面,并指示所述缓存模块对所述第一静态化HTML页面进行存储。
在一个可能的设计中,所述第二脚本代码包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值。
在一个可能的设计中,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串通过对所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量。
在一个可能的设计中,所述序列化字符串为Javascript对象表示法格式字符串或者可扩展标记语言XML格式字符串。
在一个可能的设计中,该装置还包括:
配置模块,用于配置有渲染配置,所述渲染配置包括需要所述客户端对所述页面标识对应的页面进行更新的脚本变量所对应的脚本变量标识;
所述渲染模块在获取所述模拟渲染后所述至少一个脚本变量的脚本变量值时,具体用于:查询所述配置模块配置的渲染配置中包括的所述页面标识对应的脚本变量标识,获取所述脚本变量标识对应的脚本变量值。
在一个可能的设计中,所述渲染模块在获取所述脚本变量标识对应的脚本变量值时,具体用于:
通过脚本引擎的应用程序编程接口API获取所述脚本变量标识对应的脚本变量值。
在一个可能的设计中,所述脚本变量对应的脚本语言为Javascript或者动作脚本语言ActionScript。
第四方面,本发明实施例提供了一种静态化页面的处理装置。该装置应用于客户端。装置包括:
发送模块,用于向服务器端发送页面请求,所述页面请求携带所述客户端请求的页面的页面标识;
接收模块,接收所述服务器端发送所述页面标识对应的第一静态化HTML
页面,所述第一静态化HTML页面包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面中的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值;
页面渲染模块,用于根据所述接收模块接收到的所述HTML标签以及所述第一脚本代码渲染为所述客户端请求的页面,并根据所述接收模块接收到的所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新。
在一个可能的设计中,所述第二脚本代码中包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值;
页面渲染模块,在根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新时,具体用于:
执行所述至少一条赋值语句对所述至少一个脚本变量的脚本变量值进行更新。
在一个可能的设计中,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串由所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量;
所述页面渲染模块,在根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新时,具体用于:
执行所述反序列化指令将所述至少一个序列化字符串反序列化处理得到所述至少一个脚本变量的脚本变量值,并将所述至少一个脚本变量的脚本变量值赋值给所述第一脚本代码中的所述至少一个脚本变量。
在一个可能的设计中,所述第二脚本代码为所述第一静态化HTML页面中的最后一段脚本代码。
由于在对页面进行渲染并缓存时,处理针对渲染的静态化HTML页面进行
保存外,同时对渲染过程中承载模型的脚本代码进行了缓存,因此能够保证在客户端对静态化页面进行呈现时,使用渲染过程中承载模型的脚本代码重新渲染,避免了由于脚本变量值变化导致的业务交互逻辑上出错,同时也不再需要向服务器调用模型相关数据,从而不会增加服务器的负担以及不会浪费服务器资源。
图1为本发明实施例提供的ClientMVC框架示意图;
图2为本发明实施例提供的客户端结构示意图;
图3为本发明实施例提供的服务器端结构示意图;
图4为本发明实施例提供的客户端、服务器端中各模块交互进行静态化页面处理示意图;
图5为本发明实施例提供的一种服务器端生成第一静态化HTML页面方法示意图;
图6为本发明实施例提供的另一种服务器端生成第一静态化HTML页面方法示意图;
图7为本发明实施例提供的静态化页面的处理方法流程图。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种静态化页面的处理方法及装置,用以解决现有技术中存在的业务交互逻辑上出现错误或者重新向服务器调用模型相关数据会给服务器造成不必要的负担的问题。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重
复之处不再赘述。
本发明实施例应用于ClientMVC框架下。如图1所示,该ClientMVC框架中包括客户端200以及服务器端100,客户端200能够执行控制器、模型以及视图功能。
如图2所示,为本发明实施例提供的能够实现客户端200功能的静态化页面的处理装置200a;实现客户端200功能的静态化页面的处理装置200a中包括:发送模块201,接收模块202以及页面渲染模块203。
如图3所示,为本发明实施例提供的能够实现服务器端100功能的静态化页面的处理装置100a,该实现服务器端100功能静态化页面的处理装置中包括路由模块101、缓存模块102。
参见图4为本发明实施例提供的客户端200、服务器端100中各模块交互进行静态化页面处理示意图。
客户端200的发送模块201向服务器端100发送页面请求,所述页面请求中携带所述客户端200请求的页面的页面标识。从而服务器端100的路由模块101接收到该页面请求。
路由模块101,接收客户端200发送的页面请求,所述页面请求携带所述页面标识。其中,所述页面标识可以是统一资源定位符(英文:Uniform Resource Locator,简称:URL)。
缓存模块102,用于针对需存储的页面的静态化HTML页面进行存储,所述第一静态化HTML页面中包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端200请求的页面的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值。
其中,脚本代码可以是Javascript的脚本代码、或者动作脚本语言(Actionscript)的脚本代码、或者VBscript的脚本代码,当然还可以是其他类型的脚本语言描述的脚本代码,本发明实施例中对此不作具体限定。
所述路由模块101,还用于向所述缓存模块102中获取存储的所述页面标
识对应的静态化HTML页面;然后将所述第一静态化HTML页面发送给所述客户端200。
客户端200的接收模块202,接收所述服务器端100的路由模块101发送所述页面标识对应的第一静态化HTML页面,所述第一静态化HTML页面包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端200请求的页面中的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值。
客户端200的页面渲染模块203,用于根据所述接收模块202接收到的所述HTML标签以及所述第一脚本代码渲染为所述客户端200请求的页面,并根据所述接收模块202接收到的所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新。
可选的,该实现服务器端100功能的静态化页面的处理装置100a还包括:调度模块103以及渲染模块105。
实现服务器端100功能的静态化页面的处理装置100a具体通过调度模块103以及渲染模块105生成第一静态化HTML页面,如图5所示。
S501,所述调度模块103向所述渲染模块105发送渲染通知。所述渲染通知携带需要渲染的页面标识。
S502,所述渲染模块105接收到所述渲染通知,然后所述渲染模块105获取所述页面标识对应的第二静态化HTML页面。所述第二静态化HTML页面包括所述HTML标签以及所述第一脚本代码;获取所述模拟渲染后所述至少一个脚本变量的脚本变量值。
本发明实施例提及的第一静态化HTML页面中为插入第二脚本代码后的,第二静态化HTML页面未经过插入第二脚本代码的,也就是现有技术中所缓存的静态化HTML页面。
模拟渲染是指服务器端借助脚本引擎等工具,模拟客户端浏览器对页面进行渲染的过程。
具体的,所述渲染模块105可以通过脚本引擎对所述页面标识所对应的所
述客户端200请求的页面进行模拟渲染获得第二静态化HTML页面。
其中脚本引擎可以是javascript引擎,还可以是其他脚本语言对应的脚本引擎,本发明实施例对此不作具体限定。
具体的,通过利用javascript引擎直接调用相应的ClientMVC框架方法获得第二静态化HTML页面。
S503,所述渲染模块105基于至少一个脚本变量的脚本变量值构建所述第二脚本代码。
其中第二脚本代码可以是javascript的脚本代码、Actionscript的脚本代码,也可以是其他的脚本语言对应的脚本代码。
那么基于至少一个脚本变量的脚本变量值构建第二脚本代码,构建的第二脚本代码主要用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值。
S504,所述渲染模块105将所述第二脚本代码插入到所述第二静态化HTML页面中最后一段脚本代码之后以获得所述第一静态化HTML页面。
例如,如下所示第二脚本代码。
将所述第二脚本代码插入到所述第二静态化HTML页面中最后一段脚本代码之后以获得的所述第一静态化HTML页面对应的代码如下所示:
S505,所述渲染模块105向所述缓存模块102发送缓存通知。所述缓存通知用于指示所述缓存模块102对所述第一静态化HTML页面进行存储。
可选的,所述第二脚本代码包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值。
例如:如下两条赋值语句:
A=1;
B=”1111”;
这里的脚本变量分别为A和B,用于将A的值更新为1,B的值更新为“1111”。
在所述第二脚本代码中包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值情况下,页面渲染模块203,在根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新时,具体用于执行所述至少一条赋值语句对所述至少一个脚本变量的脚本变量值进行更新。
可选地,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指
令;所述至少一个序列化字符串通过对所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端200将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量。
具体的,在所述渲染模块105获取到所述至少一个脚本变量的脚本变量值后,对所述至少一个脚本变量的脚本变量值进行序列化处理为字符串。然后基于序列化处理后的字符串构造第二脚本代码。
例如,如下所示的第二脚本代码:
AA=eval(‘{{“a”:1,”b”:{“b1”:”acb”}}})。
所述渲染模块105在将所述脚本变量值序列化处理为字符串时,序列化处理算法可以采用客户端支持的任意算法,具体可以使用Javascript对象表示法(英文:Javascript Object Notation,简称:json)序列化算法或者可扩展标记语言(英文:Extensible Markup Language,简称:XML)序列化算法等等算法将所述脚本变量值序列化处理为字符串。从而序列化字符串为Javascript对象表示法格式字符串或者可扩展标记语言XML格式字符串等等。
这里需要发送给所述客户端200的至少一个脚本变量的脚本变量值也就是模型对应的脚本变量值。
在所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令情况下,所述页面渲染模块203,在根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新时,具体用于:
执行所述反序列化指令将所述至少一个序列化字符串反序列化处理得到所述至少一个脚本变量的脚本变量值,并将所述至少一个脚本变量的脚本变量值赋值给所述第一脚本代码中的所述至少一个脚本变量。
可选地,实现服务器端100功能的静态化页面的处理装置100a还可以包括配置模块104。配置模块104用于配置有渲染配置,所述渲染配置包括需要所述客户端200对所述页面标识对应的页面进行更新的脚本变量所对应的脚本变
量标识。即,配置模块104中配置的脚本变量标识是针对多个页面的,因此在配置时,配置了页面标识与脚本变量标识的对应关系。
一个页面上存在许多的脚本变量,这里在配置模块104中配置的的脚本变量标识并不是一个页面上所有的脚本变量的,而是需要进行缓存操作的脚本变量的。因此在配置模块104中配置的都是针对某个页面需要进行缓存操作的脚本变量标识。其中配置的脚本变量标识也是在缓存的第二静态化HTML页面中脚本变量标识对应的脚本变量值可能发生了变化。
那么实现服务器端100功能的静态化页面的处理装置100a具体通过调度模块103、配置模块104以及渲染模块105生成静态化页面内容,如图6所示。
S601,所述调度模块103向所述渲染模块105发送渲染通知。所述渲染通知携带需要渲染的页面标识。
S602,所述渲染模块105接收到所述渲染通知,然后所述渲染模块105获取所述页面标识对应的第二静态化HTML页面。
S603,所述渲染模块105查询配置模块104配置的渲染配置中包括所述页面标识对应的脚本变量标识。
S604,所述渲染模块105获取所述脚本变量标识对应的脚本变量值。
需要缓存的脚本变量,可能脚本变量值有修改的,因此这里需要获取所述脚本变量标识对应的脚本变量值。
在获取所述脚本变量标识对应的脚本变量值时,具体可以通过脚本引擎的应用程序编程接口(英文:Application Programming Interface,简称:API)获取所述脚本变量标识对应的脚本变量值。
S605,所述渲染模块105基于至少一个脚本变量的脚本变量值构建所述第二脚本代码。
S606,所述渲染模块105将所述第二脚本代码插入到所述第二静态化HTML页面中最后一段脚本代码之后以获得所述第一静态化HTML页面。
S607,所述渲染模块105向所述缓存模块102发送缓存通知。所述缓存通知用于指示所述缓存模块102对所述第一静态化HTML页面进行存储。
由于在对页面进行渲染并缓存时,处理针对渲染的静态化HTML页面进行保存外,同时对渲染过程中承载模型的脚本代码进行了缓存,因此能够保证在客户端对静态化页面进行呈现时,使用渲染过程中承载模型的脚本代码重新渲染,避免了由于脚本变量值变化导致的业务交互逻辑上出错,同时也不再需要向服务器调用模型相关数据,从而不会增加服务器的负担以及不会浪费服务器资源。
可选地,配置模块104中还配置有针对URL定义的静态化执行任务。该静态化执行任务中还指定静态化缓存刷新策略。静态化缓存刷新策略可以是定时执行,即每隔预定时长对所针对的URL对应的页面进行静态化缓存。静态化刷新策略还可以是事件通知执行,例如用户订阅某一业务事件,当收到订阅该业务事件通知时,对所针对的URL对应的页面进行静态化缓存。从而调度模块103在对配置模块104中配置的静态化执行任务调度时,可以通过静态化缓存刷新策略进行调度。
配置模块104中还可以配置有路由策略。路由策略用于指定针对URL对应的页面是否开启静态化缓存路由,以及路由决策过程中需要使用的配置数据。从而路由模块101在接收到客户端200发送的页面请求,向配置模块104中查询针对该页面请求中携带的URL对应的页面是否已经开启了静态化缓存路由,若是开启了,则根据配置数据向缓存模块102查询缓存结果,缓存结果也就是URL对应的页面的静态化HTML页面,其中包括了用于更新渲染后得到的静态化HTML页面中的脚本变量的脚本变量值的脚本代码。
配置模块104中还可以配置有存储策略。存储策略用于指定针对URL对应的页面渲染后的存储策略。例如针对热点数据存储在本地内存中或者分布式内存中,其他数据存储在磁盘中。那么缓存模块102在接收到渲染模块发送的将经过构建的第二脚本代码插入所述第二静态化HTML页面中得到的第一静态化HTML页面缓存的通知时,查询配置模块中配置的存储策略,根据查询到的存储策略对经过构建的第二脚本代码插入所述第二静态化HTML页面得到的第一静态化HTML页面缓存。
本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能单元可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
其中,集成的单元既可以采用硬件的形式实现时,发送模块201,接收模块202以及页面渲染模块203对应的客户端200的实体硬件可以为处理器。路由模块101、缓存模块102、调度模块103,配置模块104以及渲染模块105对应的服务器端100的实体硬件可以为处理器。处理器,可以是一个中央处理单元(英文:central processing unit,简称CPU),或者为数字处理单元等等。其中,客户端200还包括存储器,用于存储客户端200中的处理器执行的程序,处理器用于执行存储器存储的程序。服务器端100还包括存储器,用于存储服务器端100中的处理器执行的程序。服务器端100中的存储器还用于存储静态化页面内容。
存储器可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以是非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)、或者存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是上述存储器的组合。
本发明实施例提供的方案,由于在对页面进行渲染并缓存时,处理针对渲染后的第二静态化HTML页面进行保存外,同时对渲染过程中承载模型的第二脚本代码进行了缓存得到第一静态化HTML页面,服务器端将第一静态化HTML页面发送给客户端,也就是在生成的页面中插入有相应的处理逻辑,因此能够保证在客户端对静态化页面进行呈现时,使用承载模型的第二脚本代码重新渲染并使用第二脚本代码对需要更新的脚本变量重新赋值,因此,可以保
证该页面相关的脚本执行上下文与静态化页面保存前保持一致,确保了用户交互逻辑的一致性,也就保证了在ClientMVC框架下开启静态化缓存后的执行逻辑与未开启静态化缓存时的执行逻辑保持一致,避免了由于脚本变量值变化导致的业务交互逻辑上出错,也就不再需要向服务器调用模型相关数据,从而不会增加服务器的负担,节省了服务器资源。
本发明实施例还提供了一种静态化页面的处理方法,如图7所示,该方法包括:
S701,客户端向服务器端发送页面请求。其中,所述页面请求携带所述客户端请求的页面的页面标识。
所述页面标识可以为URL。
S702,所述服务器端接收客户端发送的页面请求。
S703,所述服务器端获取存储的所述页面标识对应的第一静态化HTML页面。其中,所述第一静态化HTML页面中包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值。
S704,所述服务器端将所述第一静态化HTML页面发送给所述客户端。
S705,所述客户端接收所述服务器端发送的所述页面标识对应的第一静态化HTML页面。所述第一静态化HTML页面包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面中的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值。
S706,所述客户端根据所述HTML标签以及所述第一脚本代码渲染为所述客户端请求的页面,并根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新。
可选地,所述第一静态化HTML页面通过如下方式生成:
A1,所述服务器端对所述页面标识所对应的所述客户端请求的页面进行模
拟渲染,获得第二静态化HTML页面,所述第二静态化HTML页面包括所述HTML标签以及所述第一脚本代码;
A2,所述服务器端获取所述模拟渲染后所述至少一个脚本变量的脚本变量值。
可选地,A2中所述服务器端获取所述模拟渲染后所述至少一个脚本变量的脚本变量值时,可以通过如下方式实现:
所述服务器端查询所述页面标识对应的渲染配置;所述渲染配置包括需要所述客户端对所述页面标识对应的页面进行更新的脚本变量所对应的脚本变量标识;
所述服务器端获取所述脚本变量标识对应的脚本变量值。
所述服务器端获取所述脚本变量标识对应的脚本变量值,可以通过如下方式实现:
所述服务器端通过脚本引擎的应用程序编程接口API获取所述脚本变量标识对应的脚本变量值。
所述脚本变量对应的脚本语言为Javascript或者动作脚本语言ActionScript。
可选地,所述第二脚本代码包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值。
可选地,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串由所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量。
其中,所述至少一个序列化字符串由所述至少一个脚本变量的脚本变量值序列化得到,则是所述服务器端在获取到所述至少一个脚本变量的脚本变量值之后,将所述脚本变量值序列化处理得到序列化字符串,然后基于序列化字符串构造第二脚本代码。
所述服务器端将所述脚本变量值序列化处理得到序列化字符串,可以通过
如下方式实现:
所述服务器端使用json序列化算法或者XML序列化算法等等算法将所述脚本变量值序列化处理得到序列化字符串。
A3,所述服务器端基于至少一个脚本变量的脚本变量值构建所述第二脚本代码;
A4,所述服务器端将所述第二脚本代码插入到所述第二静态化HTML页面中最后一段脚本代码之后以获得所述第一静态化HTML页面。
可选地,在所述第二脚本代码中包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值情况下,所述客户端根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新,可以通过如下方式实现:
所述客户端执行所述至少一条赋值语句对所述至少一个脚本变量的脚本变量值进行更新。
可选地,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串由所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量的情况下,所述客户端根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新,可以通过如下方式实现:
所述客户端执行所述反序列化指令将所述至少一个序列化字符串反序列化处理得到所述至少一个脚本变量的脚本变量值,并将所述至少一个脚本变量的脚本变量值赋值给所述第一脚本代码中的所述至少一个脚本变量。
本发明实施例提供的方案,由于在对页面进行渲染并缓存时,处理针对渲染的静态化页面的HTML代码进行保存外,同时对渲染过程中承载模型的脚本代码进行了缓存,服务器端将所述静态化页面的超文本标记语言HTML代码以及对所述静态化页面进行渲染使用的模型对应的脚本代码发送给客户端,也就是在生成的静态化页面中插入有相应的处理逻辑,因此能够保证在客户端对静
态化页面进行呈现时,使用渲染过程中承载模型的脚本代码重新渲染,因此,可以保证该页面相关的脚本执行上下文与静态化页面保存前保持一致,确保了用户交互逻辑的一致性,也就保证了在ClientMVC框架下开启静态化缓存后的执行逻辑与未开启静态化缓存时的执行逻辑保持一致,避免了由于脚本变量值变化导致的业务交互逻辑上出错,也就不再需要向服务器调用模型相关数据,从而不会增加服务器的负担,浪费服务器资源。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基
本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (24)
- 一种静态化页面的处理方法,其特征在于,包括:服务器端接收客户端发送的页面请求,所述页面请求携带所述客户端请求的页面的页面标识;所述服务器端获取存储的所述页面标识对应的第一静态化超文本标记语言HTML页面,所述第一静态化HTML页面中包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值;所述服务器端将所述第一静态化HTML页面发送给所述客户端。
- 如权利要求1所述的方法,其特征在于,所述第一静态化HTML页面通过如下方式生成:所述服务器端对所述页面标识所对应的所述客户端请求的页面进行模拟渲染,获得第二静态化HTML页面,所述第二静态化HTML页面包括所述HTML标签以及所述第一脚本代码;所述服务器端获取所述模拟渲染后所述至少一个脚本变量的脚本变量值;所述服务器端基于至少一个脚本变量的脚本变量值构建所述第二脚本代码;所述服务器端将所述第二脚本代码插入到所述第二静态化HTML页面中最后一段脚本代码之后以获得所述第一静态化HTML页面。
- 如权利要求2所述的方法,其特征在于,所述第二脚本代码包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值。
- 如权利要求2所述的方法,其特征在于,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串由所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户 端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量。
- 如权利要求4所述的方法,其特征在于,所述序列化字符串为Javascript对象表示法格式字符串或者可扩展标记语言XML格式字符串。
- 如权利要求2所述的方法,其特征在于,所述服务器端获取所述模拟渲染后所述至少一个脚本变量的脚本变量值,包括:所述服务器端查询所述页面标识对应的渲染配置;所述渲染配置包括需要所述客户端对所述页面标识对应的页面进行更新的脚本变量所对应的脚本变量标识;所述服务器端获取所述脚本变量标识对应的脚本变量值。
- 如权利要求6所述的方法,其特征在于,所述服务器端获取所述脚本变量标识对应的脚本变量值,包括:所述服务器端通过脚本引擎的应用程序编程接口API获取所述脚本变量标识对应的脚本变量值。
- 如权利要求1至7任一项所述的方法,其特征在于,所述脚本变量对应的脚本语言为Javascript或者动作脚本语言ActionScript。
- 一种静态化页面的处理方法,其特征在于,包括:客户端向服务器端发送页面请求,所述页面请求携带所述客户端请求的页面的页面标识;所述客户端接收所述服务器端发送基于所述页面标识对应的第一静态化HTML页面,所述第一静态化HTML页面包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面中的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值;所述客户端根据所述HTML标签以及所述第一脚本代码渲染为所述客户端请求的页面;所述客户端根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本 变量的脚本变量值进行更新。
- 如权利要求9所述的方法,其特征在于,所述第二脚本代码中包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值;所述客户端根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新,包括:所述客户端执行所述至少一条赋值语句对所述至少一个脚本变量的脚本变量值进行更新。
- 如权利要求9所述的方法,其特征在于,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串由所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量;所述客户端根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新,包括:所述客户端执行所述反序列化指令将所述至少一个序列化字符串反序列化处理得到所述至少一个脚本变量的脚本变量值,并将所述至少一个脚本变量的脚本变量值赋值给所述第一脚本代码中的所述至少一个脚本变量。
- 如权利要求9所述的方法,其特征在于,所述第二脚本代码为所述静态化页面中最后一段脚本代码。
- 一种静态化页面的处理装置,其特征在于,该装置应用于服务器端,包括:路由模块,用于接收客户端发送的页面请求,所述页面请求携带所述客户端请求的页面的页面标识;缓存模块,用于针对需存储的页面的静态化HTML页面进行存储,所述第一静态化HTML页面中包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面的脚本变量的定义或声明,所述 第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值;所述路由模块,还用于向所述缓存模块中获取存储的所述页面标识对应的所述第一静态化HTML页面;然后将所述第一静态化HTML页面发送给所述客户端。
- 如权利要求13所述的装置,其特征在于,还包括:调度模块以及渲染模块;所述调度模块,用于向所述渲染模块发送渲染通知,所述渲染通知携带需要渲染的页面标识;所述渲染模块,用于在接收到所述渲染模块发送的渲染通知后,对所述页面标识所对应的所述客户端请求的页面进行模拟渲染获得第二静态化HTML页面,所述第二静态化HTML页面包括所述HTML标签以及所述第一脚本代码;获取所述模拟渲染后所述至少一个脚本变量的脚本变量值;基于所述至少一个脚本变量的脚本变量值构建所述第二脚本代码;将所述第二脚本代码插入到所述第二静态化HTML页面中最后一段脚本代码之后以获得所述第一静态化HTML页面,并指示所述缓存模块对所述第一静态化HTML页面进行存储。
- 如权利要求14所述的装置,其特征在于,所述第二脚本代码包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值。
- 如权利要求14所述的装置,其特征在于,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串通过对所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量。
- 如权利要求16所述的装置,其特征在于,所述序列化字符串为Javascript对象表示法格式字符串或者可扩展标记语言XML格式字符串。
- 如权利要求14所述的装置,其特征在于,还包括:配置模块,用于配置有渲染配置,所述渲染配置包括需要所述客户端对所述页面标识对应的页面进行更新的脚本变量所对应的脚本变量标识;所述渲染模块在获取所述模拟渲染后所述至少一个脚本变量的脚本变量值时,具体用于:查询所述配置模块配置的渲染配置中包括的所述页面标识对应的脚本变量标识,获取所述脚本变量标识对应的脚本变量值。
- 如权利要求18所述的装置,其特征在于,所述渲染模块在获取所述脚本变量标识对应的脚本变量值时,具体用于:通过脚本引擎的应用程序编程接口API获取所述脚本变量标识对应的脚本变量值。
- 如权利要求13至19任一项所述的装置,其特征在于,所述脚本变量对应的脚本语言为Javascript或者动作脚本语言ActionScript。
- 一种静态化页面的处理装置,其特征在于,包括:发送模块,用于向服务器端发送页面请求,所述页面请求携带所述客户端请求的页面的页面标识;接收模块,接收所述服务器端发送所述页面标识对应的第一静态化HTML页面,所述第一静态化HTML页面包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面中的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值;页面渲染模块,用于根据所述接收模块接收到的所述HTML标签以及所述第一脚本代码渲染为所述客户端请求的页面,并根据所述接收模块接收到的所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新。
- 如权利要求21所述的装置,其特征在于,所述第二脚本代码中包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值;页面渲染模块,在根据所述第二脚本代码对所述第一脚本代码中的至少一 个脚本变量的脚本变量值进行更新时,具体用于:执行所述至少一条赋值语句对所述至少一个脚本变量的脚本变量值进行更新。
- 如权利要求21所述的装置,其特征在于,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串由所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量;所述页面渲染模块,在根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新时,具体用于:执行所述反序列化指令将所述至少一个序列化字符串反序列化处理得到所述至少一个脚本变量的脚本变量值,并将所述至少一个脚本变量的脚本变量值赋值给所述第一脚本代码中的所述至少一个脚本变量。
- 如权利要求21所述的装置,其特征在于,所述第二脚本代码为所述第一静态化HTML页面中的最后一段脚本代码。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16880754.3A EP3373160A4 (en) | 2015-12-31 | 2016-10-26 | Static webpage processing method and device |
US16/013,468 US20180300422A1 (en) | 2015-12-31 | 2018-06-20 | Staticized-Page Processing Method and Apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511030782.4A CN106933890B (zh) | 2015-12-31 | 2015-12-31 | 一种静态化页面的处理方法及装置 |
CN201511030782.4 | 2015-12-31 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/013,468 Continuation US20180300422A1 (en) | 2015-12-31 | 2018-06-20 | Staticized-Page Processing Method and Apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017113963A1 true WO2017113963A1 (zh) | 2017-07-06 |
Family
ID=59224546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2016/103418 WO2017113963A1 (zh) | 2015-12-31 | 2016-10-26 | 一种静态化页面的处理方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180300422A1 (zh) |
EP (1) | EP3373160A4 (zh) |
CN (1) | CN106933890B (zh) |
WO (1) | WO2017113963A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558187B (zh) * | 2017-09-27 | 2022-08-23 | 斑马智行网络(香港)有限公司 | 一种用户界面渲染方法及装置 |
CN110020297A (zh) * | 2017-10-31 | 2019-07-16 | 北京国双科技有限公司 | 一种网页内容的加载方法、装置及系统 |
CN109936605B (zh) * | 2017-12-18 | 2021-11-05 | 北京京东尚科信息技术有限公司 | 一种加载接口数据的方法和装置 |
CN110830537B (zh) * | 2018-08-13 | 2022-05-10 | 阿里巴巴集团控股有限公司 | 一种页面处理方法及装置 |
CN111367596B (zh) * | 2018-12-25 | 2023-06-23 | 阿里巴巴集团控股有限公司 | 一种实现业务数据处理的方法及装置和客户端 |
CN111381813B (zh) * | 2018-12-28 | 2023-03-14 | 抖音视界有限公司 | 前端页面调试方法、装置、计算机设备和存储介质 |
CN110390065B (zh) * | 2019-07-31 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 网页获取方法、装置及系统 |
CN110569082B (zh) * | 2019-08-06 | 2023-03-14 | 创新先进技术有限公司 | 对页面内容进行控制的方法及装置 |
CN112433929B (zh) * | 2019-08-26 | 2024-10-11 | 深圳市珍爱捷云信息技术有限公司 | 网页调试方法、装置、计算机设备和存储介质 |
CN111596935A (zh) * | 2020-04-27 | 2020-08-28 | 五八有限公司 | 一种脚本打包方法、装置、电子设备及存储介质 |
CN112261090B (zh) * | 2020-09-28 | 2022-06-17 | 成都长虹网络科技有限责任公司 | Web数据处理方法、装置、计算机设备和可读存储介质 |
CN112257006B (zh) * | 2020-11-11 | 2024-07-19 | 汉海信息技术(上海)有限公司 | 页面信息的配置方法、装置、设备及计算机可读存储介质 |
CN113742623A (zh) * | 2021-08-23 | 2021-12-03 | 中国银联股份有限公司 | 页面加载方法、组件、系统、装置及计算机可读存储介质 |
CN115857920A (zh) * | 2021-09-23 | 2023-03-28 | 华为云计算技术有限公司 | 应用页面开发方法、装置、系统、计算设备及存储介质 |
CN115016776B (zh) * | 2022-08-09 | 2022-11-15 | 合肥汉泰网络科技有限公司 | 门户页的生成方法、系统和计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205650A1 (en) * | 2001-09-10 | 2004-10-14 | Lebin Cheng | Dynamic web content unfolding in wireless information gateways |
CN101183395A (zh) * | 2007-12-25 | 2008-05-21 | 北京中企开源信息技术有限公司 | 一种实现动态页面静态化的方法和系统 |
CN102609503A (zh) * | 2012-02-02 | 2012-07-25 | 福建榕基软件股份有限公司 | 静态网页页面的生成方法及装置 |
CN103064932A (zh) * | 2012-12-24 | 2013-04-24 | 乐视网信息技术(北京)股份有限公司 | 一种静态化页面的处理系统和方法 |
CN105069132A (zh) * | 2015-08-17 | 2015-11-18 | 中国海洋大学 | 一种基于静态外壳的网页实现方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073163A (en) * | 1997-06-10 | 2000-06-06 | Oracle Corporation | Method and apparatus for enabling web-based execution of an application |
US6484149B1 (en) * | 1997-10-10 | 2002-11-19 | Microsoft Corporation | Systems and methods for viewing product information, and methods for generating web pages |
US7480921B1 (en) * | 2003-03-12 | 2009-01-20 | Microsoft Corporation | Method, system, and apparatus for customizing web parts |
US20060248166A1 (en) * | 2005-04-29 | 2006-11-02 | Jovan Milosevic | System and method for client side rendering of a web page |
US7814410B2 (en) * | 2005-09-12 | 2010-10-12 | Workman Nydegger | Initial server-side content rendering for client-script web pages |
CN100437579C (zh) * | 2005-12-20 | 2008-11-26 | 腾讯科技(深圳)有限公司 | 一种实现ajax网页的方法 |
US8464318B1 (en) * | 2008-11-24 | 2013-06-11 | Renen Hallak | System and method for protecting web clients and web-based applications |
US8700803B2 (en) * | 2009-06-03 | 2014-04-15 | Netcordant, Inc. | Web page optimization |
US8335819B2 (en) * | 2009-12-31 | 2012-12-18 | Nokia Corporation | Method and apparatus for providing client-side caching |
US8297767B2 (en) * | 2010-09-07 | 2012-10-30 | Xicato, Inc. | LED-based illumination modules with PTFE color converting surfaces |
US9135364B1 (en) * | 2011-11-10 | 2015-09-15 | Google Inc. | Delivery of web pages with markup for speed |
-
2015
- 2015-12-31 CN CN201511030782.4A patent/CN106933890B/zh active Active
-
2016
- 2016-10-26 EP EP16880754.3A patent/EP3373160A4/en not_active Ceased
- 2016-10-26 WO PCT/CN2016/103418 patent/WO2017113963A1/zh unknown
-
2018
- 2018-06-20 US US16/013,468 patent/US20180300422A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205650A1 (en) * | 2001-09-10 | 2004-10-14 | Lebin Cheng | Dynamic web content unfolding in wireless information gateways |
CN101183395A (zh) * | 2007-12-25 | 2008-05-21 | 北京中企开源信息技术有限公司 | 一种实现动态页面静态化的方法和系统 |
CN102609503A (zh) * | 2012-02-02 | 2012-07-25 | 福建榕基软件股份有限公司 | 静态网页页面的生成方法及装置 |
CN103064932A (zh) * | 2012-12-24 | 2013-04-24 | 乐视网信息技术(北京)股份有限公司 | 一种静态化页面的处理系统和方法 |
CN105069132A (zh) * | 2015-08-17 | 2015-11-18 | 中国海洋大学 | 一种基于静态外壳的网页实现方法 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3373160A4 * |
Also Published As
Publication number | Publication date |
---|---|
US20180300422A1 (en) | 2018-10-18 |
EP3373160A1 (en) | 2018-09-12 |
CN106933890A (zh) | 2017-07-07 |
EP3373160A4 (en) | 2018-09-26 |
CN106933890B (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017113963A1 (zh) | 一种静态化页面的处理方法及装置 | |
US11055085B2 (en) | Method, apparatus, and system for hot-deploying application | |
US10776564B2 (en) | Method and system for displaying webpage self-defined content | |
CN106294658B (zh) | 网页快速展示方法和装置 | |
US10015226B2 (en) | Methods for making AJAX web applications bookmarkable and crawlable and devices thereof | |
US20150207660A1 (en) | Client-side url redirection | |
US8543713B2 (en) | Computing environment arranged to support predetermined URL patterns | |
KR20180100171A (ko) | 인터페이스 데이터 디스플레이 방법 및 장치 | |
US9497248B2 (en) | System for enabling rich network applications | |
US20120084346A1 (en) | Page Loading Optimization Using Page-Maintained Cache | |
US20160239274A1 (en) | Generating command line interface using application programming interface specification | |
JP2015167014A (ja) | ウェブアプリケーションを実施する方法、装置、サーバ、及びシステム | |
CN109936605B (zh) | 一种加载接口数据的方法和装置 | |
CN111079048B (zh) | 一种页面加载方法及装置 | |
US20150149888A1 (en) | Systems and methods for executing aspects of a document | |
US10855796B2 (en) | Data storage method and device | |
EP3063673A1 (en) | Establishment of state representation of a web page represented in a web browser | |
KR20150110743A (ko) | 페이지 상태를 매핑하는 시스템 및 방법 | |
US20170359434A1 (en) | Web caching with image and local storage | |
US9697628B2 (en) | On-demand image spriting | |
US10129363B2 (en) | Plug-in cache | |
US20220232102A1 (en) | Systems and methods for rendering interactive web pages | |
US8943171B2 (en) | Location-aware web service-based application skinning for web applications | |
CN111814085A (zh) | 基于JavaScript hook的新型WEB在线代理方法 | |
US11716405B1 (en) | System and method for identifying cache miss in backend application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16880754 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |