CN112328931A - 生成网页页面的方法和装置、计算机系统和存储介质 - Google Patents

生成网页页面的方法和装置、计算机系统和存储介质 Download PDF

Info

Publication number
CN112328931A
CN112328931A CN202010215421.1A CN202010215421A CN112328931A CN 112328931 A CN112328931 A CN 112328931A CN 202010215421 A CN202010215421 A CN 202010215421A CN 112328931 A CN112328931 A CN 112328931A
Authority
CN
China
Prior art keywords
template
sub
generating
module
page
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.)
Pending
Application number
CN202010215421.1A
Other languages
English (en)
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 Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology 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 Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202010215421.1A priority Critical patent/CN112328931A/zh
Publication of CN112328931A publication Critical patent/CN112328931A/zh
Pending legal-status Critical Current

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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • 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/9577Optimising the visualization of content, e.g. distillation of HTML documents

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开提供了一种生成网页页面的方法,包括:获取预先存储的模块实例中的至少一个模板,其中,至少一个模板中的每个模板包括:用于生成描述页面信息的文件的第一子模板、用于生成描述页面样式的文件的第二子模板和用于生成描述页面功能的文件第三子模板;对第一子模板、第二子模板和第三子模板中的至少一个子模板进行处理操作,以规范化至少一个模板,得到规范化模块实例,以便利用规范化模块实例生成网页页面。本公开还提供了一种生成网页页面的装置、计算机系统和存储介质。

Description

生成网页页面的方法和装置、计算机系统和存储介质
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种生成网页页面的方法和装置、计算机系统和存储介质。
背景技术
随着网络技术的快速发展,能够为用户提供服务的开放平台越来越多,开放平台指第三方可以接入的、能够为第三方的应用提供推广渠道的平台。例如,SAAS(Software AsA Service,软件服务化)云服务平台、微云服务平台等。
开放平台可以提供非常多的功能模块,用户可以借助这些功能模块来实现自身应用的推广。随着用户不断增加,用户需求不断多样化,为满足不同用户的差异化需求,开放平台会给用户开放一些自定义功能的接口,用户利用这些自定义功能的接口编写代码,得到自定义的功能模块。但是,受限于用户编写代码的能力,用户自定义的功能模块可能不规范,因此在用户使用这些自定义的功能模块生成网页页面时容易造成页面错乱、各功能模块相互影响等问题。
发明内容
有鉴于此,本公开提供了一种生成网页页面的方法和装置、计算机系统和存储介质。
本公开的一个方面提供了一种生成网页页面的方法,包括:获取预先存储的模块实例中的至少一个模板,其中,所述至少一个模板中的每个模板包括:用于生成描述页面信息的文件的第一子模板、用于生成描述页面样式的文件的第二子模板和用于生成描述页面功能的文件的第三子模板;对所述第一子模板、所述第二子模板和所述第三子模板中的至少一个子模板进行处理操作,以规范化所述至少一个模板,得到规范化模块实例,以便利用所述规范化模块实例生成网页页面。
根据本公开的实施例,对所述第三子模板进行处理操作包括:根据所述模块实例的标识信息,生成针对所述第三子模板的第一作用域控制字符串;根据所述第一作用域控制字符串控制所述第三子模板的作用范围。
根据本公开的实施例,根据所述第一作用域控制字符串控制所述第三子模板的作用范围包括:根据所述第一作用域控制字符串和所述第三子模板构造目标函数,以在运行所述第三子模板时根据所述第一作用域控制字符串控制所述第三子模板的作用范围,其中,所述目标函数包括第一参数和第二参数,所述第一参数为所述第一作用域控制字符串,所述第二参数为所述第三子模板。
根据本公开的实施例,对所述第三子模板进行处理操作还包括:对所述第三子模板进行混淆编译;获取所述第三子模板的校验文件;在指定运行环境中运行混淆编译后的第三子模板和所述校验文件,以校验得到所述第三子模板的错误信息。
根据本公开的实施例,所述错误信息包括以下至少之一:与所述第三子模板运行过程中出现的异常所对应的错误信息;与所述第三子模板运行过程中出现的非法请求所对应的错误信息;其中,对所述第三子模板进行处理操作还包括:通过所述校验文件的运行上报所述错误信息。
根据本公开的实施例,对所述第一子模板进行处理操作包括:对所述第一子模板进行渲染,以确定所述第一子模板中的未成对标签;对所述未成对标签进行标签补全,以规范化所述第一子模板。
根据本公开的实施例,对所述第二子模板进行处理操作包括:根据所述模块实例的标识信息,生成针对所述第二子模板的第二作用域控制字符串;将所述第二作用域控制字符串添加到所述第一子模板中的指定位置;将所述第二作用域控制字符串添加到所述第二子模板中的指定位置,以控制所述第二子模板的作用范围。
根据本公开的实施例,根据所述模块实例的标识信息,生成针对所述第二子模板的第二作用域控制字符串包括:根据所述模块实例的标识信息和指定字符,生成针对所述第二子模板的第二作用域控制字符串。
本公开的另一个方面提供了一种生成网页页面的装置,包括:获取模块,用于获取预先存储的模块实例中的至少一个模板,其中,所述至少一个模板中的每个模板包括:用于生成描述页面信息的文件的第一子模板、用于生成描述页面样式的文件的第二子模板和用于生成描述页面功能的文件的第三子模板;处理模块,对所述第一子模板、所述第二子模板和所述第三子模板中的至少一个子模板进行处理操作,以规范化所述至少一个模板,得到规范化模块实例,以便利用所述规范化模块实例生成网页页面。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的生成网页页面的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的生成网页页面的方法。
本公开的另一方面提供了一种计算机系统,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的生成网页页面的方法。
根据本公开的实施例,通过对模块实例中的至少一个模板包括的子模板进行处理操作,可以至少部分地避免因用户自定义的功能模块不规范所导致的生成的网页页面页面错乱、各功能模块相互影响的技术问题。因此,通过利用处理操作后得到的规范化模块实例生成网页页面,可以达到生成的网页页面整洁、各功能模块互不影响的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了可以应用本公开实施例的生成网页页面的方法和装置的示例性系统架构;
图2示意性示出了根据本公开实施例的生成网页页面的方法的流程图;
图3示意性示出了根据本公开实施例的模块实例中的模板的框图;
图4示意性示出了根据本公开实施例的对第一子模板进行处理操作的流程图;
图5示意性示出了根据本公开实施例的对第二子模板进行处理操作的流程图;
图6示意性示出了根据本公开实施例的对第三子模板进行处理操作的流程图;
图7示意性示出了根据本公开另一实施例的对第三子模板进行处理操作的流程图;
图8示意性示出了根据本公开实施例的生成网页页面的装置的框图;以及
图9示意性示出了根据本公开实施例的适于执行生成网页页面的方法的计算机系统框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
本公开的实施例提供了一种生成网页页面的方法和装置。该方法包括获取预先存储的模块实例中的至少一个模板,其中,至少一个模板中的每个模板包括:用于生成描述页面信息的文件的第一子模板、用于生成描述页面样式的文件的第二子模板和用于生成描述页面功能的文件第三子模板;以及对第一子模板、第二子模板和第三子模板中的至少一个子模板进行处理操作,以规范化至少一个模板,得到规范化模块实例,以便利用规范化模块实例生成网页页面。
图1示意性示出了可以应用本公开实施例的生成网页页面的方法和装置的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括云服务平台101,服务器102和终端设备103。其中,云服务平台101可以是任意类型的开放平台。例如,云服务平台101可以是购物类应用平台、游戏类应用平台、外卖平台、通信类应用平台等。以购物类应用平台为例来说明,云服务平台101可以是某电子购物平台,入驻电子购物平台的商家可以利用云服务平台101提供的功能模块搭建线上店铺,商家搭建线上店铺的实质过程即为设计网页页面的过程。
云服务平台101可以为商家提供用于设计网页页面的各种功能模块,如图1所示,该些功能模块例如可以包括功能模块1、功能模块2、功能模块3、功能模块4等。该些功能模块可以是云服务平台101的运营商提供的封装好的通用模块,每个模块通常可以包括用于实现用户界面和底层业务逻辑的代码。该些功能模块可以存放于云服务器,并且这些功能模块可以相互独立地封装有用于实现某项特定功能的代码。需要说明的是,云服务器可以是为云服务平台101提供支持的后台服务器。
商家(例如,终端设备103的用户)可以使用终端设备103通过网络与云服务器交互。例如,终端设备103可以向云服务器发送获取功能模块的请求,云服务器将功能模块实例化得到模块实例,并将得到的模块实例发送给终端设备103。如图1所示,功能模块1、功能模块2、功能模块3、功能模块4可以分别被云服务器实例化,从而分别得到模块实例1、模块实例2、模块实例3、模块实例4,以便于将该些模块实例发送到终端设备103中。商家可以通过终端设备103对该些模块实例进行任意组合来搭建自己的线上店铺。
终端设备103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。终端设备103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
随着商家数量的不断增加,商家行业的不断拓宽,云服务平台101提供的这些功能模块可能无法满足各商家差异化的需求。为了满足该差异化的需求,云服务平台101的运营商可以给用户开放一些能够自定义功能的接口,用户可以通过这些接口编写实现用户界面和业务逻辑的代码,生成自定义的功能模块,且用户可以将其自定义的功能模块通过电子设备103发送到云服务平台101对应的云服务器中,以将自定义的功能模块保存到云服务器中。云服务器可以为每一个用户设置一个功能模块列表,该功能模块列表中保存用户选择的通用的功能模块以及用户自定义的功能模块。用户需要使用功能模块时,首先可以通过终端设备103创建一个页面实例,然后通过选取功能模块列表中的功能模块使得终端设备103向云服务器发送获取功能模块的请求。云服务器接收到请求后,可以将请求获取的功能模块实例化,得到模块实例,并将该模块实例发送给终端设备103。终端设备103可以将接收到的模块实例添加到用户创建的页面实例中,通过运行添加了模块实例的页面实例,可以生成网页页面。其中,模块实例包括用于实现用户界面和页面逻辑的代码。
在上述实现方法中,用户自定义的功能模块可以保存于云服务器,使用的时候可以直接从云服务器获取再添加到页面实例中。但是,该实现过程可能会出现如下问题:商家编写的自定义的功能模块的代码可能不规范。此种情况下,若直接从云服务器获取模块实例进行运行,可能会在使得生成的页面存在页面错乱的情况。再者,通过运行该代码不规范的功能模块还可能会造成一个模块实例的作用范围影响到其他功能模块(如运行一个模块实例生成的页面的页面样式可能会影响到运行页面实例中其他模块实例生成的页面的页面样式)等。为了避免该代码不规范的情况,如果给商家约定编写代码的一些规则,又会给商家造成不易理解的困扰。此外,由于商家编写代码的水平有限,且编写的代码无法实时进行校验,因此代码的质量得不到有效的控制。再者,由于上述实现方法对商家编写的代码没有限制,商家可以通过非法途径获取到一些超出权限之外的功能(如破坏服务器中存储的通用功能模块等),并且云服务器也容易受到攻击,因此上述实现方法缺乏安全性。同时,商家编写的代码是以用户可识别的方式注入到页面实例中的,因此容易被其他商家查看到源代码,造成代码被剽窃,损害商家权益。
为了克服上述实现方法存在的缺陷,本公开实施例可以在云服务平台101和终端设备103之间增加服务器102,服务器102可以用于实施本公开实施例提供的生成网页页面的方法。具体地,该服务器102可以在用户请求获取云服务器中保存的用户自定义的功能模块之后,从云服务器中获取对应的自定义的模块实例。并对模块实例中用于实现用户界面和业务逻辑的代码进行处理操作,以规范化用户编写的代码,得到规范化模块实例,并将规范化模块实例发送给终端设备103,从而便于终端设备103将规范化模块实例添加到页面实例中,生成网页页面。
需要说明的是,本公开实施例所提供的生成网页页面的方法一般可以由服务器102执行。本公开实施例所提供的生成网页页面的方法也可以由不同于服务器102且能够与云服务平台101的云服务器和/或终端设备103通信的服务器或服务器集群执行。
应该理解,图1中的云服务平台101,服务器102和终端设备103的数目仅仅是示意性的。根据实现需要,可以具有任意数目的云服务平台101,服务器102和终端设备103。
图2示意性示出了根据本公开实施例的生成网页页面的方法的流程图。
如图2所示,该方法包括操作S201~S202。
在操作S201,获取预先存储的模块实例中的至少一个模板,其中,至少一个模板中的每个模板包括:用于生成描述页面信息的文件的第一子模板、用于生成描述页面样式的文件的第二子模板和用于生成描述页面功能的文件的第三子模板。
根据本公开实施例,模块实例可以包括多个模板,每个模板包括用于实现用户界面和业务逻辑的代码。用于实现用户界面的代码可以是例如编写的HTML(Hyper TextMarkup Language,超文本标记语言)代码和CSS(Cascading Style Sheets,层叠样式表)代码,用于实现业务逻辑的代码可以是例如编写的JavaScript代码。
图3示意性示出了根据本公开实施例的模块实例中的模板300的框图。
如图3所示,上述至少一个模块中的每个模板例如可以为图3所示的模板300,该模板300可以包括第一子模板301、第二子模板302和第三子模板303。第一子模板301、第二子模板302、第三子模板303可以分别是利用HTML代码、CSS代码和JavaScript代码编写得到的,在模块实例运行时通过传入参数可以分别生成HTML文件、CSS文件和JavaScript文件。其中,HTML文件用于描述网页的页面结构和页面内容,CSS文件用于描述页面样式,JavaScript文件用于描述页面功能。
在操作S202,对第一子模板、第二子模板和第三子模板中的至少一个子模板进行处理操作,以规范化至少一个模板,得到规范化模块实例,以便利用规范化模块实例生成网页页面。
根据本公开实施例,用户自定义的模块实例中,HTML代码、CSS代码和/或JavaScript代码可能不规范。因此,可以针对第一子模板301、第二子模板302和/或第三子模板303分别进行处理操作,以规范化用户编写的代码,得到规范化模块实例,以便于用户可以利用规范化模块实例生成网页页面。
根据本公开的实施例,操作S202例如可以针对第一子模板301中HTML代码存在的不成对的标签进行标签补全,以避免模块实例运行时出现页面错乱的情况。并且/或者,操作S202可以针对第二子模板302中CSS代码添加作用域控制字符串,以避免模块实例运行时影响其他模块实例生成的网页页面的样式的情况。并且/或者,操作S202可以针对第三子模板303中的JavaScript代码添加作用域控制字符串,以避免模块实例运行时影响其他模块实例的功能的情况。并且/或者,操作S202还可以对第三子模板303中的JavaScript代码进行校验,获取模块实例运行时出现的错误信息,拦截模块实例运行时出现的非法请求。在一实施例中,在获取到错误信息后,还可以将错误信息反馈给商家,以保证代码质量。通过拦截非法请求可以防止用户通过非法途径获取超出权限之外的功能,避免云服务平台遭到攻击,提高系统安全。并且/或者,操作S202还可以对第三子模板303中的JavaScript代码进行混淆编译,使得其他商家无法识别出源代码,防止代码被剽窃,从而保障商家权益。
根据本公开的实施例,通过对模块实例中的至少一个模板包括的子模板进行处理操作,可以至少部分地避免因用户自定义的功能模块不规范所导致的生成的网页页面错乱、各功能模块相互影响的技术问题,并因此通过利用处理操作后得到的规范化模块实例生成网页页面,可以达到生成的网页页面整洁、各功能模块互不影响的技术效果。
图4示意性示出了根据本公开实施例的对第一子模板进行处理操作的流程图。
根据本公开实施例,操作S202中对第一子模板301进行的处理操作例如可以包括图4所示的操作S401~S402。
在操作S401,对第一子模板进行渲染,以确定第一子模板中的未成对标签。
根据本公开实施例,第一子模板301可以采用HTML代码编写得到,HTML标签是HTML代码中基本的单位,该基本的单位应以标签对的形式出现,标签对中的第一个标签是开始标签,第二个标签是结束标签,网页的内容位于该两个标签之间。通过对第一子模板301进行渲染,可以确定HTML代码中没有成对出现的标签。
在操作S402,对未成对标签进行标签补全,以规范化第一子模板。
根据本公开实施例,可以采用标签补全工具对没有成对出现的标签进行补全。例如,若某一行描述网页内容的代码只在开始位置有开始标签,则在该行代码的结束位置添加结束标签,或者若某一行描述网页内容的代码只在结束位置有结束标签,则在该行代码的开始位置添加开始标签。通过标签补全,可以使得所有HTML标签都以成对的形式出现,从而使用户编写的HTML规范化,避免在模块实例运行时可能存在的页面错乱的情况。其中,标签补全工具可以是GitHub上提供的第三方工具。可以理解的是,前述的补全工具仅作为示例以利于理解本公开,本公开对该标签补全工具的具体类型不作限定。
图5示意性示出了根据本公开实施例的对第二子模板进行处理操作的流程图。
根据本公开实施例,操作S202中对第二子模板302进行的处理操作例如可以包括图5所示的操作S501~S503。
在操作S501,根据模块实例的标识信息,生成针对第二子模板的第二作用域控制字符串。
该操作S501例如可以包括:根据模块实例的标识信息和指定字符,生成针对第二子模板302的第二作用域控制字符串。
根据本公开实施例,结合图1,终端设备103可以向云服务器发送获取请求,以获取功能模块。则云服务器可以先将功能模块实例化得到模块实例,并生成模块实例的标识信息,然后将模块实例和模块实例的标识信息发送给服务器102。其中,云服务器例如可以根据接收到的获取请求的顺序来生成模块实例的标识信息。服务器102可以利用模块实例的标识信息作为针对第二子模板302的作用域控制字符串。
根据本公开实施例,当第二子模板302是采用CSS代码编写得到时,还可以利用由模块实例的标识信息和约定的字符组合成的字符串作为第二子模板302的作用域控制字符串。例如,第二子模板302的作用域控制字符串可以是“parent-123456”,其中“parent”是约定的特殊字符串,“123456”则是模块实例的标识信息。该利用由模块实例的标识信息和约定的字符组合成的字符串作为第二子模板302的作用域控制字符串的方法能够满足CSS子模板的命名规则。需要说明的是,针对不同模块实例的第二子模板302所约定的特殊字符串可以是相同的,也可以是不同的。
在操作S502,将第二作用域控制字符串添加到第一子模板中的指定位置。
根据本公开实施例,可以将第二子模板302的作用域控制字符串添加到第一子模板301的指定位置,例如,在第一子模板301是采用HTML代码编写得到时,由于第一子模板301最外层节点的class属性可以控制页面样式,因此,可以将第二子模板302的作用域控制字符串添加到第一子模板301最外层节点的class属性中。
在操作S503,将第二作用域控制字符串添加到第二子模板中的指定位置,以控制第二子模板的作用范围。
根据本公开实施例,当第二子模板302是采用CSS代码编写得到时,可以将第二子模板302的作用域控制字符串添加到每行CSS代码的最前面。通过操作S502和操作S503可以将当前模块实例的页面样式控制在当前模块实例之内,从而避免该模块实例的运行影响到其他模块实例生成的网页页面的样式。需要说明的是,本公开对该操作S502和操作S503的执行顺序不作限定,在一实施例中,该操作S502和操作S503也可以同时执行。
图6示意性示出了根据本公开实施例的对第三子模板进行处理操作的流程图。
根据本公开实施例,操作S202中对第三子模板303进行的处理操作例如可以包括图6所示的操作S601~S602。
在操作S601,根据模块实例的标识信息,生成针对第三子模板的第一作用域控制字符串。
根据本公开实施例,可以利用模块实例的标识信息作为针对第三子模板303的作用域控制字符串。需要说明的是,针对第三子模板的第一作用域控制字符串和针对第二子模板的第二作用域字符串,可以都是根据模块实例的标识信息生成。其中,第二子模板为采用CSS代码编写得到时,为了满足第二子模板的命名规则,针对第二子模板的第二作用域字符串可以是根据模块实例的标识信息和约定的字符组合生成。
在操作S602,根据第一作用域控制字符串控制第三子模板的作用范围。
根据本公开实施例,该操作S602例如可以包括:根据第一作用域控制字符串和第三子模板303构造目标函数,以在运行第三子模板303时根据第一作用域控制字符串控制第三子模板303的作用范围,其中,目标函数包括第一参数和第二参数,第一参数为第一作用域控制字符串,第二参数为第三子模板303。
根据本公开实施例,第三子模板303的作用域控制字符串可以用来控制第三子模板303的作用范围。例如,可以将JavaScrip的内部构造函数Function作为目标函数,Function的第一个参数为函数体的参数,第二个参数为具体的函数体,函数体运行的条件为第一个参数。该实施例可以将第三子模板303的作用域控制字符串作为Function的第一个参数,第三子模板303作为Function的第二个参数。在运行第三子模板303时可以以第三子模板303的作用域控制字符串作为运行条件,使得第三子模板303运行时的作用范围可以控制在当前的模块实例中。构造的Function函数可以理解为是向第三子模板303的运行提供的一个沙箱,通过在该沙箱中运行第三子模板,可以隔离第三子模板303与外部的直接关系。在沙箱内以第三子模板303的作用域控制字符串作为运行条件,可以控制第三子模板303的作用范围。
图7示意性示出了根据本公开实施例的对第三子模板进行处理操作的流程图。
根据本公开实施例,操作S202中对第三子模板303进行的处理操作例如可以包括图7所示的操作S701~S703。
在操作S701,对第三子模板进行混淆编译。
根据本公开实施例,可以对第三子模板303进行混淆编译,例如,可以利用混淆编译工具将第三子模板中的有意义的代码转换为特殊字符,以使得第三子模板303的源代码无法人为识别出来,保护用户的源代码不被剽窃。其中,混淆编译工具可以是UglifyJS工具,可以理解的是,UglifyJS工具仅作为示例以利于理解本公开,本公开对该混淆编译工具的具体类型不作限定。在对第三子模板303进行混淆编译后,可以对混淆编译后的第三子模板303进行压缩,减少第三子模板303的存储空间。需要说明的是,上述实施例中构造的Function函数中的第二个参数,可以是混淆编译并压缩后的第三子模板303,也可以是没有经过混淆编译和压缩处理的第三子模板303。
在操作S702,获取第三子模板的校验文件。
根据本公开实施例,该校验文件例如可以是从服务器102获取得到的。该校验文件可以包括预先设置的用于实现校验功能的代码,这些代码在运行时可以实现针对第三子模板303的运行出现的异常捕获、非法请求拦截等功能。
在操作S703,在指定运行环境中运行混淆编译后的第三子模板和校验文件,以校验得到第三子模板的错误信息。
其中,错误信息包括以下至少之一:
与第三子模板303运行过程中出现的异常所对应的错误信息、与第三子模板303运行过程中出现的非法请求所对应的错误信息。
在操作S703之后,操作S202中对第三子模板进行的处理操作例如还可以包括:通过校验文件的运行上报错误信息,错误信息例如可以上报给终端设备103或云服务器102。
根据本公开实施例,指定运行环境例如可以是利用运行工具提供的能够运行第三子模板的运行环境,可以利用该运行环境来运行第三子模板303和校验代码。其中,运行工具可以是能够在服务器中运行的浏览器,例如可以是无头浏览器Puppeteer等。第三子模板303如果是利用JavaScript编写得到,可以利用嵌入服务器102的运行工具来运行第三子模板303和校验文件。从而可以获得第三子模板303运行时出现的错误信息,其中,错误信息可以是运行时出现的异常、运行时出现的非法请求。
根据本公开实施例,在获得第三子模板303运行时出现的错误信息之后,可以将这些错误信息进行上报,例如可以发送给终端设备103,以使用户根据错误信息控制代码质量。
需要说明的是,利用运行工具运行的第三子模板303可以是混淆编译后的第三子模板303,也可以是没有经过混淆编译处理的第三子模板303。
图8示意性示出了根据本公开的实施例的生成网页页面的装置的框图。
如图8所示,生成网页页面的装置800包括获取模块801和处理模块802。
获取模块801用于获取预先存储的模块实例中的至少一个模板,其中,至少一个模板中的每个模板包括:用于生成描述页面信息的文件的第一子模板、用于生成描述页面样式的文件的第二子模板和用于生成描述页面功能的文件的第三子模板(操作S201)。
处理模块802用于对第一子模板、第二子模板和第三子模板中的至少一个子模板进行处理操作,以规范化至少一个模板,得到规范化模块实例,以便利用规范化模块实例生成网页页面(操作S202)。
根据本公开实施例,处理模块802可以包括:第一生成单元和控制单元。
第一生成单元用于根据模块实例的标识信息,生成针对第三子模板的第一作用域控制字符串(操作S601)。
控制单元用于根据第一作用域控制字符串控制第三子模板的作用范围(操作S602)。
根据本公开实施例,控制单元具体可以用于根据第一作用域控制字符串和第三子模板构造目标函数,以在运行第三子模板时根据第一作用域控制字符串控制第三子模板的作用范围,其中,目标函数包括第一参数和第二参数,第一参数为第一作用域控制字符串,第二参数为第三子模板。
根据本公开实施例,处理模块802还可以包括:编译单元、获取单元和检验单元。
编译单元用于对第三子模板进行混淆编译(操作S701)。
获取单元用于获取第三子模板的校验文件(操作S702)。
检验单元用于在指定运行环境中运行混淆编译后的第三子模板和校验文件,以校验得到第三子模板的错误信息(操作S703)。
根据本公开实施例,错误信息例如可以包括以下至少之一:与第三子模板运行过程中出现的异常所对应的错误信息;与第三子模板运行过程中出现的非法请求所对应的错误信息。
根据本公开实施例,处理模块802还可以用于通过校验文件的运行上报错误信息。
根据本公开实施例,处理模块802可以包括:渲染单元和补全单元。
渲染单元用于对第一子模板进行渲染,以确定第一子模板中的未成对标签(操作S401)。
补全单元用于对未成对标签进行标签补全,以规范化第一子模板(操作S402)。
根据本公开实施例,处理模块802可以包括:第二生成单元、第一添加单元和第二添加单元。
第二生成单元用于根据模块实例的标识信息,生成针对第二子模板的第二作用域控制字符串(操作S501)。
第一添加单元用于将第二作用域控制字符串添加到第一子模板中的指定位置(操作S502)。
第二添加单元用于将第二作用域控制字符串添加到第二子模板中的指定位置,以控制第二子模板的作用范围(操作S503)。
根据本公开实施例,第二生成单元具体用于根据模块实例的标识信息和指定字符,生成针对第二子模板的第二作用域控制字符串。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块801和处理模块802可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,获取模块801和处理模块802中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块801和处理模块802中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中生成网页页面的装置部分与本公开的实施例中生成网页页面的方法部分是相对应的,生成网页页面的装置部分的描述具体参考生成网页页面的方法部分,在此不再赘述。
图9示意性示出了根据本公开实施例的适于执行生成网页页面的方法的计算机系统的框图。图9示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,根据本公开实施例的计算机系统900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有系统900操作所需的各种程序和数据。处理器901、ROM 902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,系统900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。系统900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (11)

1.一种生成网页页面的方法,包括:
获取预先存储的模块实例中的至少一个模板,其中,所述至少一个模板中的每个模板包括:用于生成描述页面信息的文件的第一子模板、用于生成描述页面样式的文件的第二子模板和用于生成描述页面功能的文件的第三子模板;以及
对所述第一子模板、所述第二子模板和所述第三子模板中的至少一个子模板进行处理操作,以规范化所述至少一个模板,得到规范化模块实例,以便利用所述规范化模块实例生成网页页面。
2.根据权利要求1所述的方法,其中,对所述第三子模板进行处理操作包括:
根据所述模块实例的标识信息,生成针对所述第三子模板的第一作用域控制字符串;以及
根据所述第一作用域控制字符串控制所述第三子模板的作用范围。
3.根据权利要求2所述的方法,根据所述第一作用域控制字符串控制所述第三子模板的作用范围包括:
根据所述第一作用域控制字符串和所述第三子模板构造目标函数,以在运行所述第三子模板时根据所述第一作用域控制字符串控制所述第三子模板的作用范围,其中,所述目标函数包括第一参数和第二参数,所述第一参数为所述第一作用域控制字符串,所述第二参数为所述第三子模板。
4.根据权利要求1所述的方法,其中,对所述第三子模板进行处理操作还包括:
对所述第三子模板进行混淆编译;
获取所述第三子模板的校验文件;以及
在指定运行环境中运行混淆编译后的第三子模板和所述校验文件,以校验得到所述第三子模板的错误信息。
5.根据权利要求4所述的方法,其中,所述错误信息包括以下至少之一:
与所述第三子模板运行过程中出现的异常所对应的错误信息;
与所述第三子模板运行过程中出现的非法请求所对应的错误信息;
其中,对所述第三子模板进行处理操作还包括:通过所述校验文件的运行上报所述错误信息。
6.根据权利要求1所述的方法,其中,对所述第一子模板进行处理操作包括:
对所述第一子模板进行渲染,以确定所述第一子模板中的未成对标签;以及
对所述未成对标签进行标签补全,以规范化所述第一子模板。
7.根据权利要求1所述的方法,其中,对所述第二子模板进行处理操作包括:
根据所述模块实例的标识信息,生成针对所述第二子模板的第二作用域控制字符串;
将所述第二作用域控制字符串添加到所述第一子模板中的指定位置;以及
将所述第二作用域控制字符串添加到所述第二子模板中的指定位置,以控制所述第二子模板的作用范围。
8.根据权利要求7所述的方法,其中,根据所述模块实例的标识信息,生成针对所述第二子模板的第二作用域控制字符串包括:
根据所述模块实例的标识信息和指定字符,生成针对所述第二子模板的第二作用域控制字符串。
9.一种生成网页页面的装置,包括:
获取模块,用于获取预先存储的模块实例中的至少一个模板,其中,所述至少一个模板中的每个模板包括:用于生成描述页面信息的文件的第一子模板、用于生成描述页面样式的文件的第二子模板和用于生成描述页面功能的文件的第三子模板;以及
处理模块,对所述第一子模板、所述第二子模板和所述第三子模板中的至少一个子模板进行处理操作,以规范化所述至少一个模板,得到规范化模块实例,以便利用所述规范化模块实例生成网页页面。
10.一种计算机系统,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至8中任一项所述的方法。
CN202010215421.1A 2020-03-24 2020-03-24 生成网页页面的方法和装置、计算机系统和存储介质 Pending CN112328931A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010215421.1A CN112328931A (zh) 2020-03-24 2020-03-24 生成网页页面的方法和装置、计算机系统和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010215421.1A CN112328931A (zh) 2020-03-24 2020-03-24 生成网页页面的方法和装置、计算机系统和存储介质

Publications (1)

Publication Number Publication Date
CN112328931A true CN112328931A (zh) 2021-02-05

Family

ID=74302874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010215421.1A Pending CN112328931A (zh) 2020-03-24 2020-03-24 生成网页页面的方法和装置、计算机系统和存储介质

Country Status (1)

Country Link
CN (1) CN112328931A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925550A (zh) * 2021-03-12 2021-06-08 中国平安财产保险股份有限公司 App界面更新方法、系统、装置及存储介质
CN114817804A (zh) * 2022-03-31 2022-07-29 北京达佳互联信息技术有限公司 一种网页生成方法、装置、电子设备及存储介质
EP4276604A1 (en) * 2022-05-09 2023-11-15 ServiceNow, Inc. Dynamic web component stream renderer

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216121B1 (en) * 1997-12-29 2001-04-10 International Business Machines Corporation Web page generation with subtemplates displaying information from an electronic post office system
CN106201642A (zh) * 2016-06-29 2016-12-07 微梦创科网络科技(中国)有限公司 一种基于nodejs的模板自动化编译上线方法及系统
CN110489118A (zh) * 2019-05-13 2019-11-22 杭州米雅信息科技有限公司 网页生成方法、装置、系统和计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216121B1 (en) * 1997-12-29 2001-04-10 International Business Machines Corporation Web page generation with subtemplates displaying information from an electronic post office system
CN106201642A (zh) * 2016-06-29 2016-12-07 微梦创科网络科技(中国)有限公司 一种基于nodejs的模板自动化编译上线方法及系统
CN110489118A (zh) * 2019-05-13 2019-11-22 杭州米雅信息科技有限公司 网页生成方法、装置、系统和计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JOHANNA M.SILVENNOINEN 等: "Appraisals of Salient Visual Elements in Web Page Design", 《ADVANCES IN HUMAN-COMPUTER INTERACTION》, 30 April 2016 (2016-04-30) *
陈治昂 等: "一种基于模板的快速网页文本自动抽取算法", 《计算机应用研究》, 31 July 2009 (2009-07-31) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925550A (zh) * 2021-03-12 2021-06-08 中国平安财产保险股份有限公司 App界面更新方法、系统、装置及存储介质
CN114817804A (zh) * 2022-03-31 2022-07-29 北京达佳互联信息技术有限公司 一种网页生成方法、装置、电子设备及存储介质
EP4276604A1 (en) * 2022-05-09 2023-11-15 ServiceNow, Inc. Dynamic web component stream renderer
US12015656B2 (en) 2022-05-09 2024-06-18 Servicenow, Inc. Dynamic web component stream renderer

Similar Documents

Publication Publication Date Title
CN105940654B (zh) 特权静态被托管的web应用
Jung et al. Repackaging attack on android banking applications and its countermeasures
US9104528B2 (en) Controlling the release of private information using static flow analysis
US9760359B2 (en) Healthcare as a service—downloadable enterprise application
CN112328931A (zh) 生成网页页面的方法和装置、计算机系统和存储介质
MX2013013970A (es) Sistema y metodo para conservar referencias en los aislamientos de procesos.
US11301357B1 (en) Method to check application programming interface correctness in software
US9811509B2 (en) Ensuring integrity of a displayed web page
US11398163B2 (en) Secure computer-implemented execution and evaluation of programming assignments for on demand courses
CN104704468A (zh) Web应用程序的跨系统安装
CN104903860A (zh) 第三方应用脚本能力
US20160253483A1 (en) Systems, methods, and apparatus for facilitating client-side digital rights compliance
CN111737692B (zh) 应用程序的风险检测方法及装置、设备、存储介质
US11637839B2 (en) Automated and adaptive validation of a user interface
JP2020529066A (ja) クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術
US10592068B1 (en) Graphic composer for service integration
WO2014132145A1 (en) Web service black box testing
US9760472B2 (en) Tenant code debugging in multi-tenant systems
CN112328244A (zh) 显示页面配置的方法、服务器、终端设备及电子设备
Ferreira et al. RuleKeeper: GDPR-aware personal data compliance for web frameworks
US8862984B1 (en) Data contracts for network page generation code
JP2019211849A (ja) プログラムの実行制御方法、プログラム、記録媒体、ウェブページ、送信サーバ、クライアントおよびウェブシステム
CN110659897A (zh) 交易验证的方法、系统、计算设备和介质
US9965744B1 (en) Automatic dynamic vetting of browser extensions and web applications
US9929973B2 (en) Method of and a system for providing access to a file to a web resource

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