CN106933890B - 一种静态化页面的处理方法及装置 - Google Patents

一种静态化页面的处理方法及装置 Download PDF

Info

Publication number
CN106933890B
CN106933890B CN201511030782.4A CN201511030782A CN106933890B CN 106933890 B CN106933890 B CN 106933890B CN 201511030782 A CN201511030782 A CN 201511030782A CN 106933890 B CN106933890 B CN 106933890B
Authority
CN
China
Prior art keywords
script
page
variable
code
script variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201511030782.4A
Other languages
English (en)
Other versions
CN106933890A (zh
Inventor
廖巍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING CSSCA TECHNOLOGIES Co.,Ltd.
Original Assignee
Beijing Cssca Technologies Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Cssca Technologies Co ltd filed Critical Beijing Cssca Technologies Co ltd
Priority to CN201511030782.4A priority Critical patent/CN106933890B/zh
Priority to EP16880754.3A priority patent/EP3373160A4/en
Priority to PCT/CN2016/103418 priority patent/WO2017113963A1/zh
Publication of CN106933890A publication Critical patent/CN106933890A/zh
Priority to US16/013,468 priority patent/US20180300422A1/en
Application granted granted Critical
Publication of CN106933890B publication Critical patent/CN106933890B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

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)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General 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

一种静态化页面的处理方法及装置
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种静态化页面的处理方法及装置。
背景技术
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页面。
例如,如下所示第二脚本代码。
<!--动态插入的第二脚本代码-->
<script>
A=1;
B=”1111”;
AA=eval(‘{{“a”:1,”b”:{“b1”:”acb”}}});
</script>
将所述第二脚本代码插入到所述第二静态化HTML页面中最后一段脚本代码之后以获得的所述第一静态化HTML页面对应的代码如下所示:
Figure BDA0000899250320000121
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对象表示法(英文:JavascriptObject Notation,简称:json)序列化算法或者可扩展标记语言(英文:Extensible MarkupLanguage,简称: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 (22)

1.一种静态化页面的处理方法,其特征在于,包括:
服务器端接收客户端发送的页面请求,所述页面请求携带所述客户端请求的页面的页面标识;
所述服务器端获取存储的所述页面标识对应的第一静态化超文本标记语言HTML页面,所述第一静态化HTML页面中包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值;
所述服务器端将所述第一静态化HTML页面发送给所述客户端;
所述第一静态化HTML页面通过如下方式生成:
所述服务器端对所述页面标识所对应的所述客户端请求的页面进行模拟渲染,获得第二静态化HTML页面,所述第二静态化HTML页面包括所述HTML标签以及所述第一脚本代码;
所述服务器端获取所述模拟渲染后所述至少一个脚本变量的脚本变量值;
所述服务器端基于至少一个脚本变量的脚本变量值构建所述第二脚本代码;
所述服务器端将所述第二脚本代码插入到所述第二静态化HTML页面中最后一段脚本代码之后以获得所述第一静态化HTML页面。
2.如权利要求1所述的方法,其特征在于,所述第二脚本代码包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值。
3.如权利要求1所述的方法,其特征在于,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串由所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量。
4.如权利要求3所述的方法,其特征在于,所述序列化字符串为Javascript对象表示法格式字符串或者可扩展标记语言XML格式字符串。
5.如权利要求1所述的方法,其特征在于,所述服务器端获取所述模拟渲染后所述至少一个脚本变量的脚本变量值,包括:
所述服务器端查询所述页面标识对应的渲染配置;所述渲染配置包括需要所述客户端对所述页面标识对应的页面进行更新的脚本变量所对应的脚本变量标识;
所述服务器端获取所述脚本变量标识对应的脚本变量值。
6.如权利要求5所述的方法,其特征在于,所述服务器端获取所述脚本变量标识对应的脚本变量值,包括:
所述服务器端通过脚本引擎的应用程序编程接口API获取所述脚本变量标识对应的脚本变量值。
7.如权利要求1至6任一项所述的方法,其特征在于,所述脚本变量对应的脚本语言为Javascript或者动作脚本语言ActionScript。
8.一种静态化页面的处理方法,其特征在于,包括:
客户端向服务器端发送页面请求,所述页面请求携带所述客户端请求的页面的页面标识;
所述客户端接收所述服务器端发送基于所述页面标识对应的第一静态化HTML页面,所述第一静态化HTML页面包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面中的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值;
所述客户端根据所述HTML标签以及所述第一脚本代码渲染所述客户端请求的页面;
所述客户端根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新。
9.如权利要求8所述的方法,其特征在于,所述第二脚本代码中包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值;
所述客户端根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新,包括:
所述客户端执行所述至少一条赋值语句对所述至少一个脚本变量的脚本变量值进行更新。
10.如权利要求8所述的方法,其特征在于,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串由所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量;
所述客户端根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新,包括:
所述客户端执行所述反序列化指令将所述至少一个序列化字符串反序列化处理得到所述至少一个脚本变量的脚本变量值,并将所述至少一个脚本变量的脚本变量值赋值给所述第一脚本代码中的所述至少一个脚本变量。
11.如权利要求8所述的方法,其特征在于,所述第二脚本代码为所述静态化页面中最后一段脚本代码。
12.一种静态化页面的处理装置,其特征在于,该装置应用于服务器端,包括:
路由模块,用于接收客户端发送的页面请求,所述页面请求携带所述客户端请求的页面的页面标识;
缓存模块,用于针对需存储的页面的第一静态化HTML页面进行存储,所述第一静态化HTML页面中包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值;
所述路由模块,还用于向所述缓存模块中获取存储的所述页面标识对应的所述第一静态化HTML页面;然后将所述第一静态化HTML页面发送给所述客户端;
调度模块以及渲染模块;
所述调度模块,用于向所述渲染模块发送渲染通知,所述渲染通知携带需要渲染的页面标识;
所述渲染模块,用于在接收到所述渲染模块发送的渲染通知后,对所述页面标识所对应的所述客户端请求的页面进行模拟渲染获得第二静态化HTML页面,所述第二静态化HTML页面包括所述HTML标签以及所述第一脚本代码;获取所述模拟渲染后所述至少一个脚本变量的脚本变量值;基于所述至少一个脚本变量的脚本变量值构建所述第二脚本代码;将所述第二脚本代码插入到所述第二静态化HTML页面中最后一段脚本代码之后以获得所述第一静态化HTML页面,并指示所述缓存模块对所述第一静态化HTML页面进行存储。
13.如权利要求12所述的装置,其特征在于,所述第二脚本代码包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值。
14.如权利要求12所述的装置,其特征在于,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串通过对所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量。
15.如权利要求14所述的装置,其特征在于,所述序列化字符串为Javascript对象表示法格式字符串或者可扩展标记语言XML格式字符串。
16.如权利要求12所述的装置,其特征在于,还包括:
配置模块,用于配置有渲染配置,所述渲染配置包括需要所述客户端对所述页面标识对应的页面进行更新的脚本变量所对应的脚本变量标识;
所述渲染模块在获取所述模拟渲染后所述至少一个脚本变量的脚本变量值时,具体用于:查询所述配置模块配置的渲染配置中包括的所述页面标识对应的脚本变量标识,获取所述脚本变量标识对应的脚本变量值。
17.如权利要求16所述的装置,其特征在于,所述渲染模块在获取所述脚本变量标识对应的脚本变量值时,具体用于:
通过脚本引擎的应用程序编程接口API获取所述脚本变量标识对应的脚本变量值。
18.如权利要求12至17任一项所述的装置,其特征在于,所述脚本变量对应的脚本语言为Javascript或者动作脚本语言ActionScript。
19.一种静态化页面的处理装置,其特征在于,包括:
发送模块,用于向服务器端发送页面请求,所述页面请求携带客户端请求的页面的页面标识;
接收模块,接收所述服务器端发送所述页面标识对应的第一静态化HTML页面,所述第一静态化HTML页面包括HTML标签、第一脚本代码以及第二脚本代码,所述第一脚本代码包括所述客户端请求的页面中的脚本变量的定义或声明,所述第二脚本代码用于更新所述第一脚本代码中的至少一个脚本变量的脚本变量值;
页面渲染模块,用于根据所述接收模块接收到的所述HTML标签以及所述第一脚本代码渲染所述客户端请求的页面,并根据所述接收模块接收到的所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新。
20.如权利要求19所述的装置,其特征在于,所述第二脚本代码中包括至少一条赋值语句,所述至少一条赋值语句用于更新所述至少一个脚本变量的脚本变量值;
页面渲染模块,在根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新时,具体用于:
执行所述至少一条赋值语句对所述至少一个脚本变量的脚本变量值进行更新。
21.如权利要求19所述的装置,其特征在于,所述第二脚本代码中包括至少一个序列化字符串以及反序列化指令;所述至少一个序列化字符串由所述至少一个脚本变量的脚本变量值序列化得到;所述反序列化指令用于指示所述客户端将所述至少一个序列化字符串进行反序列化处理,并将所述反序列化处理后的结果赋值给所述至少一个脚本变量;
所述页面渲染模块,在根据所述第二脚本代码对所述第一脚本代码中的至少一个脚本变量的脚本变量值进行更新时,具体用于:
执行所述反序列化指令将所述至少一个序列化字符串反序列化处理得到所述至少一个脚本变量的脚本变量值,并将所述至少一个脚本变量的脚本变量值赋值给所述第一脚本代码中的所述至少一个脚本变量。
22.如权利要求19所述的装置,其特征在于,所述第二脚本代码为所述第一静态化HTML页面中的最后一段脚本代码。
CN201511030782.4A 2015-12-31 2015-12-31 一种静态化页面的处理方法及装置 Active CN106933890B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201511030782.4A CN106933890B (zh) 2015-12-31 2015-12-31 一种静态化页面的处理方法及装置
EP16880754.3A EP3373160A4 (en) 2015-12-31 2016-10-26 Static webpage processing method and device
PCT/CN2016/103418 WO2017113963A1 (zh) 2015-12-31 2016-10-26 一种静态化页面的处理方法及装置
US16/013,468 US20180300422A1 (en) 2015-12-31 2018-06-20 Staticized-Page Processing Method and Apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511030782.4A CN106933890B (zh) 2015-12-31 2015-12-31 一种静态化页面的处理方法及装置

Publications (2)

Publication Number Publication Date
CN106933890A CN106933890A (zh) 2017-07-07
CN106933890B true CN106933890B (zh) 2021-08-06

Family

ID=59224546

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511030782.4A Active CN106933890B (zh) 2015-12-31 2015-12-31 一种静态化页面的处理方法及装置

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 (14)

* Cited by examiner, † Cited by third party
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 创新先进技术有限公司 对页面内容进行控制的方法及装置
CN112433929A (zh) * 2019-08-26 2021-03-02 深圳市珍爱捷云信息技术有限公司 网页调试方法、装置、计算机设备和存储介质
CN111596935A (zh) * 2020-04-27 2020-08-28 五八有限公司 一种脚本打包方法、装置、电子设备及存储介质
CN112261090B (zh) * 2020-09-28 2022-06-17 成都长虹网络科技有限责任公司 Web数据处理方法、装置、计算机设备和可读存储介质
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1987850A (zh) * 2005-12-20 2007-06-27 腾讯科技(深圳)有限公司 一种实现ajax网页的方法
US7299201B2 (en) * 1997-10-10 2007-11-20 Microsoft Corporation System and method for designing and operating an electronic store
CN102804166A (zh) * 2009-06-03 2012-11-28 克德科软件股份有限公司 网页最优化

Family Cites Families (13)

* Cited by examiner, † Cited by third party
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
US6941512B2 (en) * 2001-09-10 2005-09-06 Hewlett-Packard Development Company, L.P. Dynamic web content unfolding in wireless information gateways
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
CN101183395B (zh) * 2007-12-25 2011-12-28 北京中企开源信息技术有限公司 一种实现动态页面静态化的方法和系统
US8464318B1 (en) * 2008-11-24 2013-06-11 Renen Hallak System and method for protecting web clients and web-based applications
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
CN102609503A (zh) * 2012-02-02 2012-07-25 福建榕基软件股份有限公司 静态网页页面的生成方法及装置
CN103064932A (zh) * 2012-12-24 2013-04-24 乐视网信息技术(北京)股份有限公司 一种静态化页面的处理系统和方法
CN105069132A (zh) * 2015-08-17 2015-11-18 中国海洋大学 一种基于静态外壳的网页实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299201B2 (en) * 1997-10-10 2007-11-20 Microsoft Corporation System and method for designing and operating an electronic store
CN1987850A (zh) * 2005-12-20 2007-06-27 腾讯科技(深圳)有限公司 一种实现ajax网页的方法
CN102804166A (zh) * 2009-06-03 2012-11-28 克德科软件股份有限公司 网页最优化

Also Published As

Publication number Publication date
WO2017113963A1 (zh) 2017-07-06
EP3373160A4 (en) 2018-09-26
EP3373160A1 (en) 2018-09-12
CN106933890A (zh) 2017-07-07
US20180300422A1 (en) 2018-10-18

Similar Documents

Publication Publication Date Title
CN106933890B (zh) 一种静态化页面的处理方法及装置
US11055085B2 (en) Method, apparatus, and system for hot-deploying application
JP6416374B2 (ja) 動的コンテンツと古いコンテンツとを含んでいるウェブサイトの高速レンダリング
EP3399721B1 (en) Interface data displaying method and device
US10042948B2 (en) Identifying correlated components of dynamic content
US9942307B2 (en) Web application script migration
US10091289B2 (en) Provisional execution of dynamic content component
US9509764B1 (en) Updating cached web content
US10666758B2 (en) Browser resource pre-pulling method, terminal and storage medium
JP2019517043A5 (zh)
US20120084346A1 (en) Page Loading Optimization Using Page-Maintained Cache
US20160239274A1 (en) Generating command line interface using application programming interface specification
US20110239108A1 (en) Configurable dynamic combination of html resources for download optimization in script based web page
CN108920703B (zh) 一种http缓存优化方法与装置
US20150149888A1 (en) Systems and methods for executing aspects of a document
US11182536B2 (en) System and method for dynamic webpage rendering with no flicker or flash of original content
CN105183890B (zh) 基于浏览器的网页加载方法和浏览器装置
US10540150B2 (en) Composable context menus
US9697628B2 (en) On-demand image spriting
US10187319B1 (en) Automatic configuration generation for a proxy optimization server for optimizing the delivery of content of a web publisher
US10129363B2 (en) Plug-in cache
US20200174804A1 (en) Graphical User Interface Command Pattern
US20130326023A1 (en) Mechanism for location-aware web service-based application skinning for web applications
WO2016005886A2 (en) Self-referencing of running script elements in asychronously loaded dom modules
EP2431933A1 (en) Treatment controller

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20210721

Address after: 510000 Room 518, No. 91 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province (office only)

Applicant after: Guangzhou Fangwei Information Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd.

Effective date of registration: 20210721

Address after: 100000 No. 55 Xueyuan South Road, Haidian District, Beijing

Applicant after: BEIJING CSSCA TECHNOLOGIES Co.,Ltd.

Address before: 510000 Room 518, No. 91 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province (office only)

Applicant before: Guangzhou Fangwei Information Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: 1408, 14th floor, block B, building 8, guanchengyuan, Haidian District, Beijing

Patentee after: BEIJING CSSCA TECHNOLOGIES Co.,Ltd.

Address before: 100000 No. 55 Xueyuan South Road, Haidian District, Beijing

Patentee before: BEIJING CSSCA TECHNOLOGIES Co.,Ltd.

CP02 Change in the address of a patent holder