CN109388770B - Web页面生成方法及装置 - Google Patents
Web页面生成方法及装置 Download PDFInfo
- Publication number
- CN109388770B CN109388770B CN201811083918.1A CN201811083918A CN109388770B CN 109388770 B CN109388770 B CN 109388770B CN 201811083918 A CN201811083918 A CN 201811083918A CN 109388770 B CN109388770 B CN 109388770B
- Authority
- CN
- China
- Prior art keywords
- module
- function
- generated
- built
- preset
- 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
Links
Images
Abstract
本发明实施例提供一种Web页面生成方法及装置,对于待生成的目标Web页面中的任意一个预生成模块,若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块;根据该预生成模块和内置模块之间的逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;根据所有实例化模块生成运行的目标Web页面。该方法及装置不但有效提高了代码的复用率,还能够适用于各种需求场景,有效提高了项目的整体开发效率与质量。
Description
技术领域
本发明涉及计算机技术领域,更具体地,涉及Web页面生成方法及装置。
背景技术
传统的系统性质的Web应用,具有模块、页面数量较多的特点,不同页面之间存在相似的交互模式但又有业务需求上的一些差异。开发过程往往需要面临的问题是,Web前端工程师很难形成模板页面提供给后台人员,因此需要花费大量的时间编写内容相似的代码。
针对上述问题,目前开发者往往采取的策略是将通用方法抽象出来,定义至公共文件中,当需要某一通用方法的时,再从公共文件中进行调用。然而,随着项目的推进,公共文件中的方法越来越多,很容易出现命名全局污染问题。同时公共文件中的方法难以形成统一的代码风格,造成不同项目之间代码复用率低、代码的维护性和可读性差等问题。
发明内容
本发明实施例为了克服现有技术中不同项目之间代码复用率低、代码的维护性和可读性差等问题,提供一种Web页面生成方法及装置。
根据本发明实施例的第一个方面,提供一种Web页面生成方法,包括:
将待生成的目标Web页面所需的每个模块,作为预生成模块,对于任意一个预生成模块,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块;
若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块,并确定该预生成模块与内置模块之间的逻辑处理差异;
根据逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;
根据所有实例化模块生成运行的目标Web页面。
优选地,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块,之后还包括:
对于任意一个预生成模块,若预设封装对象中不存在与该预生成模块功能相同或相近的通用模块,则利用register方法向预设封装对象中注册该预生成模块,以使得利用get方法从预设封装对象中调用该预生成模块。
优选地,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块,之后还包括:
若预设封装对象中存在与该预生成模块功能相同的通用模块,则将与该预生成模块功能相同的通用模块作为内置模块,并利用get方法从预设封装对象中调用内置模块,获得实例化模块;
根据所有实例化模块生成运行的目标Web页面。
优选地,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块,之前还包括:
引入封装文件,封装文件中包含多个通用模块,每个通用模块中包含至少一个方法;
采用匿名函数自执行的方式执行封装文件中的所有方法,并在全局环境中声明封装文件对应的封装对象,获得预设封装对象。
优选地,利用get方法从预设封装对象中调用内置模块,之前还包括:
设置预设封装对象的对外接口,对外接口包括get接口、register接口、setUp接口和utils接口。
优选地,利用get方法从预设封装对象中调用内置模块,具体为:
获取内置模块对应的模块ID和模块名称;
利用get方法根据模块ID和模块名称从预设封装对象中调用内置模块。
优选地,钩子函数包含Created函数和Mounted函数。
根据本发明实施例的第二个方面,提供一种Web页面生成装置,包括:
功能判断模块,用于将待生成的目标Web页面所需的每个模块,作为预生成模块,对于任意一个预生成模块,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块;
差异确定模块,用于若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块,并确定该预生成模块与内置模块之间的逻辑处理差异;
模块调用模块,用于根据逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;
页面生成模块,用于根据所有实例化模块生成运行的目标Web页面。
根据本发明实施例的第三个方面,还提供一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的Web页面生成方法。
根据本发明实施例的第四个方面,还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的Web页面生成方法。
本发明实施例提供的Web页面生成方法及装置,对于待生成的目标Web页面中的任意一个预生成模块,若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块;根据该预生成模块和内置模块之间的逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;根据所有实例化模块生成运行的目标Web页面。该方法及装置通过将项目开发中累积的通用模块封装至预设封装对象中,实现了二次封装,从而可根据实际开发需求从预设封装对象中直接调用对应的通用模块,且可以通过钩子函数将个性化的处理逻辑注入到对应的通用模块中,不但有效提高了代码的复用率,还能够适用于各种需求场景;由于预设封装对象中的模块都是以统一的格式进行注册的,有利于形成统一的代码风格,易于后期维护和修改,有效提高了项目的整体开发效率与质量。
附图说明
图1为本发明实施例提供的Web页面生成方法的流程示意图;
图2为本发明实施例提供的Web页面生成装置的功能框图;
图3为本发明实施例提供的电子设备的结构框图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1为本发明实施例提供的Web页面生成方法的流程示意图,如图1所示,本发明实施例提供一种Web页面生成方法,包括:
S1,将待生成的目标Web页面所需的每个模块,作为预生成模块,对于任意一个预生成模块,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块;
具体地,在开发过程中,同一项目中往往存在大量相似的交互模式的Web页面,将待生成的Web页面作为目标Web页面。对于任意一个目标Web页面,首先对该目标Web页面进行分析,确定该目标Web页面所需的各个模块,将该目标Web页面所需的每个模块作为预生成模块。可以理解的是,本实施例中的模块即为Web页面中的功能模块,且一个Web页面往往包括多个功能模块。
进一步地,对于任意一个预生成模块,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块,其中预设封装对象是预先在全局环境中声明的封装对象,且预设封装对象中预先封装了多个通用模块。
需要说明的是,预设封装对象中的通用模块是开发过程中累积获得的,在开发过程中,将常用的功能模块作为通用模块封装在预设封装对象中。
需要说明的是,本发明实施例中,两个模块功能相近指的是两个模块所实现的功能大部分是相同的,而仅仅只有小部分功能是不同的。
S2,若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块,并确定该预生成模块与内置模块之间的逻辑处理差异;
具体地,若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块,并确定该预生成模块与内置模块之间的逻辑处理差异。可以理解的是,虽然预设封装对象中的通用模块是开发过程中累积获得的,但每个通用模块不可能完全适用于各种需求场景,因此该预生成模块与该内置模块之间往往存在逻辑处理差异。
需要说明的是,两个模块之间的逻辑处理差异指的是两个模块在逻辑处理上的差异,通常表现为两个模块在功能上的差异。比如,一个模块能实现新增、删除和查找的功能,而另一个模块除了能够实现新增、删除和查找的功能之外,还能实现修改的功能,那么这两个模块之间存在功能上的差异,也即存在逻辑处理差异。
S3,根据逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;
具体地,在确定该预生成模块与内置模块之间的逻辑处理差异之后,根据逻辑处理差异生成钩子函数(hook function)。其中,钩子函数中编写了该预生成模块区别于内置模块的个性化的处理逻辑代码,通过个性化的处理逻辑代码实现内置模块所不能实现的差异功能。需要说明的是,钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。
进一步地,由于该预生成模块与内置模块之间存在逻辑处理差异,故而在利用get方法从预设封装对象中调用内置模块的过程中,需将钩子函数作为配置项添加至get方法中,即对get方法中配置项进行配置,在配置完成后,再利用get方法从预设封装对象中调用内置模块,以使得将该预生成模块与内置模块之间的逻辑处理差异注入内置模块中。
可以理解的是,利用get方法进行模块调用时还需提供其他的配置项,可以根据实际需求进行设置,此处不做具体限定。
通过上述get方法的调用步骤之后,可生成能够正常运行的内置模块,即实现了对内置模块的实例化,最终可获得实例化模块。可以理解的是,模块调用也可称为模块实例化,调用后生成的模块即为实例化的模块。
需要说明的是,本实施例中的get方法是从预设封装对象中调用模块的方法。例如,假定预设封装对象为ebapBase,则对应的get方法可表示为ebapBase.get()。
S4,根据所有实例化模块生成运行的目标Web页面。
具体地,根据上述方法步骤可以获得目标Web页面所需的每个模块对应的实例化模块,最终,根据目标Web页面所需的所有模块对应的所有实例化模块生成运行的目标Web页面。
需要说明的是,在调用获得实例化模块之后,各个实例化模块之间可以进行相互通信。本实施例中,各个实例化模块之间可以通过依赖的方式进行相互通信;也可以通过选项名称(options.name)直接挂载到窗体(window)进行通信;还可以通过自带的自定义事件on、once和trigger进行通信。在其他实施例中,各个实例化模块之间进行通信的方式可以根据实际需求进行设置,此处不做具体限定。
本发明实施例提供的Web页面生成方法,对于待生成的目标Web页面中的任意一个预生成模块,若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块;根据该预生成模块和内置模块之间的逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;根据所有实例化模块生成运行的目标Web页面。该方法通过将项目开发中累积的通用模块封装至预设封装对象中,实现了二次封装,从而可根据实际开发需求从预设封装对象中直接调用对应的通用模块,且可以通过钩子函数将个性化的处理逻辑注入到对应的通用模块中,不但有效提高了代码的复用率,还能够适用于各种需求场景;由于预设封装对象中的模块都是以统一的格式进行注册的,有利于形成统一的代码风格,易于后期维护和修改,有效提高了项目的整体开发效率与质量。
基于上述任一实施例,提供一种Web页面生成方法,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块,之后还包括:对于任意一个预生成模块,若预设封装对象中不存在与该预生成模块功能相同或相近的通用模块,则利用register方法向预设封装对象中注册该预生成模块,以使得利用get方法从预设封装对象中调用该预生成模块。
具体地,对于任意一个预生成模块,在判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块之后,若预设封装对象中不存在与该预生成模块功能相同或相近的通用模块,则利用register方法向预设封装对象中注册该预生成模块,在向预设封装对象中成功注册该预生成模块之后,则可再利用get方法从预设封装对象中调用该预生成模块。本实施例中,在利用register方法向预设封装对象中注册新模块时,统一在register方法中传递两个配置参数,分别为模块名和模块内容。在其他实施例中,register方法所需的配置参数可以根据实际需求进行设置,此处不做具体限定。
需要说明的是,为了确保能够统一采用模块调用的方式编写页面,本实施例中,当预设封装对象中缺少某一模块时,需先将该模块注册到预设封装对象中,再利用get方法从预设封装对象中调用该模块。
需要说明的是,本实施例中的register方法是向预设封装对象中注册新模块的方法。例如,假定预设封装对象为ebapBase,则对应的register方法可表示为ebapBase.register()。
本发明实施例提供的Web页面生成方法,在判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块之后,对于任意一个预生成模块,若预设封装对象中不存在与该预生成模块功能相同或相近的通用模块,则利用register方法向预设封装对象中注册该预生成模块,以使得利用get方法从预设封装对象中调用该预生成模块。该方法能够根据开发的实际需求向预设封装对象中注册新的模块,可扩展性强;且每个模块使用统一的方法进行注册,有利于形成统一的代码风格。
基于上述任一实施例,提供一种Web页面生成方法,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块,之后还包括:若预设封装对象中存在与该预生成模块功能相同的通用模块,则将与该预生成模块功能相同的通用模块作为内置模块,并利用get方法从预设封装对象中调用内置模块,获得实例化模块;根据所有实例化模块生成运行的目标Web页面。
具体地,在判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块之后,若预设封装对象中存在与该预生成模块功能相同的通用模块,则将与该预生成模块功能相同的通用模块作为内置模块,此时可以直接利用get方法从预设封装对象中调用内置模块,即对内置模块进行实例化,获得实例化模块。在利用get方法从预设封装对象中调用内置模块时,可以通过向get方法传递模块的配置参数实现调用,其中配置参数包括模块ID和模块名称等,可以根据实际需求进行设置,此处不做具体限定。
需要说明的是,两个模块功能相同指的是两个模块可以实现相同数量和相同种类的功能,也即两个模块之间不存在逻辑处理差异。
本发明实施例提供的Web页面生成方法,在判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块之后,若预设封装对象中存在与该预生成模块功能相同的通用模块,则将该通用模块作为内置模块,再利用get方法从预设封装对象中调用内置模块,获得实例化模块,有效实现了模块代码的复用,减少了代码的编写量,有效提高了开发效率。
基于上述任一实施例,提供一种Web页面生成方法,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块,之前还包括:引入封装文件,封装文件中包含多个通用模块,每个通用模块中包含至少一个方法;采用匿名函数自执行的方式执行封装文件中的所有方法,并在全局环境中声明封装文件对应的封装对象,获得预设封装对象。
具体地,在判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块之前,还需预先声明预设封装对象,具体实现如下:
首先引入封装文件,该封装文件中包含多个通用模块,且每个通用模块中至少包含一个方法。即,对多个通用模块进行二次封装,将多个通用模块封装在封装文件中。其中,通用模块为开发过程中积累的常用模块,可以根据实际需求进行设置,此处不做具体限定。在实际应用中,封装文件可以为base.js文件,可以根据实际需求进行设置,此处不做具体限定。
进一步地,为了避免封装文件中的方法出现命名全局污染问题,本实施例中,采用匿名函数自执行的方式执行封装文件中的所有方法,以控制内部变量不可被外部访问。即,将真正的逻辑处理的代码置于函数中,作为匿名函数的参数传入。在封装文件中的所有方法执行完成之后,在全局环境中声明封装文件对应的封装对象,获得预设封装对象。例如,若封装文件为base.js文件,则对应的预设封装对象即为ebapBase。
本发明实施例提供的Web页面生成方法,在判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块之前,引入封装文件,封装文件中包含多个通用模块,每个通用模块中包含至少一个方法;采用匿名函数自执行的方式执行封装文件中的所有方法,并在全局环境中声明封装文件对应的封装对象,获得预设封装对象。该方法通过将通用模块进行二次封装,并在全局环境声明封装对象,有利于在页面开发的过程中通过封装对象直接调用通用模块,以实现模块代码的复用;同时采用匿名函数自执行的方式执行各通用模块中的方法,能够有效避免出现命名全局污染问题。
基于上述任一实施例,提供一种Web页面生成方法,利用get方法从预设封装对象中调用内置模块,之前还包括:设置预设封装对象的对外接口,对外接口包括get接口、register接口、setUp接口和utils接口。
具体地,本实施例中,在利用get方法从预设封装对象中调用内置模块之前,为了实现get方法的有效调用,还需预先设置预设封装对象的对外接口。本实施例中,针对预设封装对象设置的对外接口包括get接口、register接口、setUp接口和utils接口等,其中通过get接口即可从预设封装对象中调用内置模块,通过register接口即可将新的模块注册到预设封装对象中。在其他实施例中,预设封装对象的对外接口可以根据实际需求进行设置,此处不做具体限定。
本发明实施例提供的Web页面生成方法,利用get方法从预设封装对象中调用内置模块之前,设置预设封装对象的对外接口,对外接口包括get接口、register接口、setUp接口和utils接口,有利于通过对外接口实现预设封装对象中模块的调用,进而实现模块代码的复用;同时也有利于通过对外接口对预设封装对象中的模块进行扩展,以适用于不同的需求场景。
基于上述任一实施例,提供一种Web页面生成方法,利用get方法从预设封装对象中调用内置模块,具体为:获取该内置模块对应的模块ID和模块名称;利用get方法根据模块ID和模块名称从预设封装对象中调用内置模块。
具体地,在利用get方法从预设封装对象中调用内置模块时,需先获取该内置模块对应的模块ID和模块名称,再利用get方法根据模块ID和模块名称从预设封装对象中调用内置模块。即,将模块ID和模块名称作为get方法的两个配置项,此外,get方法的配置项还包括:
Name:标识于把get方法返回的实例挂载到window中;
Settings:配置当前页面所需的url(相当于ajax异步请求);
openCfg:配置window.open()打开页面的参数。
在实际应用中,上述配置项可以根据实际需求进行配置,此处不做具体限定。
本发明实施例提供的Web页面生成方法,获取内置模块对应的模块ID和模块名称,利用get方法根据模块ID和模块名称从预设封装对象中调用内置模块,能够有效实现预设封装文件中模块的调用,有利于实现模块代码的复用。
基于上述任一实施例,提供一种Web页面生成方法,钩子函数包含Created函数和Mounted函数。
具体地,本实施例中,在实例化模块过程的关键时间节点上添加钩子函数,有利于通过钩子函数将个性化的处理逻辑注入到生成的模块中。其中钩子函数包含Created函数和Mounted函数等,其中Created函数用于表示当模块实例被创建时调用;Mounted函数用于表示已经获取模块,即将返回。在其他实施例中,钩子函数可以根据实际需求进行设置,此处不做具体限定。
需要说明的是,钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。
本发明实施例提供的Web页面生成方法,在实例化模块过程的关键时间节点上添加钩子函数,有利于通过钩子函数将个性化的处理逻辑注入到生成的模块中。
图2为本发明实施例提供的Web页面生成装置的功能框图,如图2所示,基于上述任一实施例,提供一种Web页面生成装置,包括:
功能判断模块201,用于将待生成的目标Web页面所需的每个模块,作为预生成模块,对于任意一个预生成模块,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块;
差异确定模块202,用于若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块,并确定该预生成模块与内置模块之间的逻辑处理差异;
模块调用模块203,用于根据逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;
页面生成模块204,用于根据所有实例化模块生成运行的目标Web页面。
本发明实施例提供的Web页面生成装置,包括功能判断模块201、差异确定模块202、模块调用模块203和页面生成模块204,通过各模块之间的配合实现上述任一方法实施例中的方法,具体实现过程可以参见上述任一方法实施例,此处不再赘述。
本发明实施例提供的Web页面生成装置,对于待生成的目标Web页面中的任意一个预生成模块,若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块;根据该预生成模块和内置模块之间的逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;根据所有实例化模块生成运行的目标Web页面。该装置通过将项目开发中累积的通用模块封装至预设封装对象中,实现了二次封装,从而可根据实际开发需求从预设封装对象中直接调用对应的通用模块,且可以通过钩子函数将个性化的处理逻辑注入到对应的通用模块中,不但有效提高了代码的复用率,还能够适用于各种需求场景;由于预设封装对象中的模块都是以统一的格式进行注册的,有利于形成统一的代码风格,易于后期维护和修改,有效提高了项目的整体开发效率与质量。
基于上述任一实施例,提供一种Web页面生成装置,还包括模块注册模块,用于:对于任意一个预生成模块,若预设封装对象中不存在与该预生成模块功能相同或相近的通用模块,则利用register方法向预设封装对象中注册该预生成模块,以使得利用get方法从预设封装对象中调用该预生成模块。
基于上述任一实施例,提供一种Web页面生成装置,模块调用模块还用于:若预设封装对象中存在与该预生成模块功能相同的通用模块,则将与该预生成模块功能相同的通用模块作为内置模块,并利用get方法从预设封装对象中调用内置模块,获得实例化模块;相应地,页面生成模块还用于:根据所有实例化模块生成运行的目标Web页面。
基于上述任一实施例,提供一种Web页面生成装置,还包括模块封装模块,用于:引入封装文件,封装文件中包含多个通用模块,每个通用模块中包含至少一个方法;采用匿名函数自执行的方式执行封装文件中的所有方法,并在全局环境中声明封装文件对应的封装对象,获得预设封装对象。
基于上述任一实施例,提供一种Web页面生成装置,还包括接口设置模块,用于:设置预设封装对象的对外接口,对外接口包括get接口、register接口、setUp接口和utils接口。
基于上述任一实施例,提供一种Web页面生成装置,模块调用模块具体用于:获取内置模块对应的模块ID和模块名称;利用get方法根据模块ID和模块名称从预设封装对象中调用内置模块。
图3示出本发明实施例提供的电子设备的结构框图。参照图3,所述电子设备,包括:处理器(processor)31、存储器(memory)32和总线33;其中,所述处理器31和存储器32通过所述总线33完成相互间的通信;所述处理器31用于调用所述存储器32中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:将待生成的目标Web页面所需的每个模块,作为预生成模块,对于任意一个预生成模块,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块;若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块,并确定该预生成模块与内置模块之间的逻辑处理差异;根据逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;根据所有实例化模块生成运行的目标Web页面。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:将待生成的目标Web页面所需的每个模块,作为预生成模块,对于任意一个预生成模块,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块;若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块,并确定该预生成模块与内置模块之间的逻辑处理差异;根据逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;根据所有实例化模块生成运行的目标Web页面。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:将待生成的目标Web页面所需的每个模块,作为预生成模块,对于任意一个预生成模块,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块;若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块,并确定该预生成模块与内置模块之间的逻辑处理差异;根据逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;根据所有实例化模块生成运行的目标Web页面。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种Web页面生成方法,其特征在于,包括:
将待生成的目标Web页面所需的每个模块,作为预生成模块,对于任意一个预生成模块,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块;
若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块,并确定该预生成模块与内置模块之间的逻辑处理差异;
根据逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;
根据所有实例化模块生成运行的目标Web页面;
所述get方法是从预设封装对象中调用模块的方法。
2.根据权利要求1所述的方法,其特征在于,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块,之后还包括:
对于任意一个预生成模块,若预设封装对象中不存在与该预生成模块功能相同或相近的通用模块,则利用register方法向预设封装对象中注册该预生成模块,以使得利用get方法从预设封装对象中调用该预生成模块;
所述register方法是向预设封装对象中注册新模块的方法。
3.根据权利要求1所述的方法,其特征在于,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块,之后还包括:
若预设封装对象中存在与该预生成模块功能相同的通用模块,则将与该预生成模块功能相同的通用模块作为内置模块,并利用get方法从预设封装对象中调用内置模块,获得实例化模块;
根据所有实例化模块生成运行的目标Web页面。
4.根据权利要求1所述的方法,其特征在于,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块,之前还包括:
引入封装文件,封装文件中包含多个通用模块,每个通用模块中包含至少一个方法;
采用匿名函数自执行的方式执行封装文件中的所有方法,并在全局环境中声明封装文件对应的封装对象,获得预设封装对象。
5.根据权利要求1所述的方法,其特征在于,利用get方法从预设封装对象中调用内置模块,之前还包括:
设置预设封装对象的对外接口,对外接口包括get接口、register接口、setUp接口和utils接口。
6.根据权利要求1所述的方法,其特征在于,利用get方法从预设封装对象中调用内置模块,具体为:
获取内置模块对应的模块ID和模块名称;
利用get方法根据模块ID和模块名称从预设封装对象中调用内置模块。
7.根据权利要求1所述的方法,其特征在于,钩子函数包含Created函数和Mounted函数;
所述Created函数用于表示当模块实例被创建时调用;
所述Mounted函数用于表示已经获取模块,即将返回。
8.一种Web页面生成装置,其特征在于,包括:
功能判断模块,用于将待生成的目标Web页面所需的每个模块,作为预生成模块,对于任意一个预生成模块,判断预设封装对象中是否存在与该预生成模块功能相同或相近的通用模块;
差异确定模块,用于若预设封装对象中存在与该预生成模块功能相近的通用模块,则将与该预生成模块功能相近的通用模块作为内置模块,并确定该预生成模块与内置模块之间的逻辑处理差异;
模块调用模块,用于根据逻辑处理差异生成钩子函数,将钩子函数作为配置项添加至get方法中,并利用get方法从预设封装对象中调用内置模块,以使得将逻辑处理差异注入内置模块中,获得实例化模块;
页面生成模块,用于根据所有实例化模块生成运行的目标Web页面。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811083918.1A CN109388770B (zh) | 2018-09-17 | 2018-09-17 | Web页面生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811083918.1A CN109388770B (zh) | 2018-09-17 | 2018-09-17 | Web页面生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109388770A CN109388770A (zh) | 2019-02-26 |
CN109388770B true CN109388770B (zh) | 2020-05-05 |
Family
ID=65418769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811083918.1A Active CN109388770B (zh) | 2018-09-17 | 2018-09-17 | Web页面生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109388770B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113534682A (zh) * | 2020-04-16 | 2021-10-22 | 北京国电智深控制技术有限公司 | 工业控制器中管理逻辑块的方法和装置 |
CN112068816B (zh) * | 2020-07-22 | 2023-11-10 | 福建天泉教育科技有限公司 | 防止js全局污染的方法、存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070250450A1 (en) * | 2006-04-20 | 2007-10-25 | Ramlau-Hansen Jeppe D | System and method for conducting mobile transactions |
CN101650745A (zh) * | 2009-09-10 | 2010-02-17 | 中兴通讯股份有限公司 | 一种基于数据定义的web页面快速生成方法及装置 |
CN102541851B (zh) * | 2010-12-10 | 2014-05-14 | 金蝶软件(中国)有限公司 | 页面模块化生成方法及系统 |
-
2018
- 2018-09-17 CN CN201811083918.1A patent/CN109388770B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109388770A (zh) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547570B (zh) | 服务注册方法、装置、注册中心管理设备及存储介质 | |
CN107066631A (zh) | 页面的显示方法、装置及电子设备 | |
CN107203419A (zh) | 应用程序中的模块间调用方法、装置及系统 | |
CN111343181B (zh) | 报文的处理方法,系统以及数据池和计算机可读存储介质 | |
CN109388770B (zh) | Web页面生成方法及装置 | |
CN108563472B (zh) | 基于多开应用的服务插件加载方法及装置 | |
CN108664343B (zh) | 一种微服务的有状态调用方法及装置 | |
CN109725887B (zh) | 基于消息研发框架的数据交互方法、装置及终端设备 | |
CN111625225A (zh) | 一种程序指定数据输出方法和装置 | |
CN109815202B (zh) | 日志编辑方法及相关装置 | |
CN110673827A (zh) | 基于安卓系统的资源调用方法及装置、电子设备 | |
CN116755788A (zh) | 一种线上规则修改方法、装置、设备及存储介质 | |
CN107783837B (zh) | 一种进行存储扩展的方法、装置及电子设备 | |
CN115562807A (zh) | 一种在kubernetes环境下为安卓容器挂载动态设备的方法及系统 | |
CN113495723B (zh) | 一种调用功能组件的方法、装置及存储介质 | |
CN110286936B (zh) | 热修复方法、装置、电子设备以及存储介质 | |
CN112860398A (zh) | 基于规则引擎的数据处理方法、装置、设备及介质 | |
CN109684846A (zh) | 一种文件提取方法及装置 | |
CN111176648B (zh) | 免安装程序转换处理方法、装置、电子设备及存储介质 | |
CN110659033B (zh) | 协议注册分发方法、存储介质、电子设备及系统 | |
CN117851983A (zh) | 一种开源组件许可证风险处理方法、装置、设备及介质 | |
CN111125098B (zh) | 包含多模块的应用前端的接入方法、模块注册方法及装置 | |
CN110879747B (zh) | 资源管理方法及装置 | |
CN110442392B (zh) | 一种包隔离方法、装置、电子设备和存储介质 | |
CN108664293B (zh) | 安卓系统中的应用控制方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |