一种组件加载方法及装置与流程

文档序号:11154542阅读:240来源:国知局
一种组件加载方法及装置与制造工艺

本发明涉及组件加载技术领域,更具体地说,涉及一种组件加载方法及装置。



背景技术:

目前,一般的一个组件至少包含一个模块,因为每个组件中包含多个功能,随着功能的增加,模块的代码会变的非常庞大,比如表格组件功能很多,代码量很大,即使按照模块加载也会显得过重,很多不需要的功能代码都会被加载。另外,对于模板&组件之间的交互代码,必须写在模板中,一般内置在超类中,如果当前页面没用这个组件,也会加载和初始化相应的代码,导致加载的代码量膨胀,造成性能损失。可见,现有的模块加载方式,无法按照功能进行模块加载,过多不需要的功能代码的加载,会影响系统性能,导致加载的代码量膨胀。

因此,如何解决上述技术问题,提高系统性能,避免出现代码量膨胀现象,是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种组件加载方法及装置,以实现提高系统性能,避免出现代码量膨胀现象。

为实现上述目的,本发明实施例提供了如下技术方案:

一种组件加载方法,包括:

根据组件业务特性,将组件拆分为功能不同的功能模块;

在对目标组件进行加载时,利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,并将符合所述预定混入策略的功能模块加入模块列表;

加载所述模块列表中的功能模块,实现对目标组件的加载。

其中,所述在对目标组件进行加载时,利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,包括:

加载目标组件时,确定与所述目标组件对应的目标混入策略;

根据所述目标混入策略,从所述目标组件的功能模块中查找符合所述目标混入策略的功能模块。

其中,所述利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,并将符合所述预定混入策略的功能模块加入模块列表,包括:

若所述目标混入策略为配置混入策略,则检测所述目标组件的功能模块的属性开关状态;

将所述属性开关状态为允许状态的功能模块,添加至所述模块列表。

其中,所述利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,并将符合所述预定混入策略的功能模块加入模块列表,包括:

若所述目标混入策略为关联混入策略,则检测当前页面的页面类型;

从所述目标组件的功能模块中查找,与所述页面类型相关联的功能模块,并添加至所述模块列表。

其中,所述利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,并将符合所述预定混入策略的功能模块加入模块列表,包括:

若所述目标混入策略为动态混入策略,则根据接口及函数计算结果,从所述目标组件的功能模块中确定待加载的功能模块,并添加至所述模块列表。

一种组件加载装置,包括:

功能模块拆分模块,用于根据组件业务特性,将组件拆分为功能不同的功能模块;

功能模块选取模块,用于在对目标组件进行加载时,利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,并将符合所述预定混入策略的功能模块加入模块列表;

加载模块,用于加载所述模块列表中的功能模块,实现对目标组件的加载。

其中,所述功能模块选取模块包括:

目标混入策略确定单元,用于加载目标组件时,确定与所述目标组件对应的目标混入策略;

功能模块添加单元,用于根据所述目标混入策略,从所述目标组件的功能模块中查找符合所述目标混入策略的功能模块。

其中,所述功能模块添加单元,包括:

第一检测子单元,用于在所述目标混入策略为配置混入策略时,检测所述目标组件的功能模块的属性开关状态;

第一添加子单元,用于将所述属性开关状态为允许状态的功能模块,添加至所述模块列表。

其中,所述功能模块添加单元,包括:

第二检测子单元,用于在所述目标混入策略为关联混入策略时,检测当前页面的页面类型;

第二添加子单元,用于从所述目标组件的功能模块中查找与所述页面类型相关联的功能模块,并添加至所述模块列表。

其中,所述功能模块添加单元,包括:

第三添加子单元,用于在所述目标混入策略为动态混入策略时,根据接口及函数计算结果,从所述目标组件的功能模块中确定待加载的功能模块,并添加至所述模块列表。

通过以上方案可知,本发明实施例提供的一种组件加载方法,包括:根据组件业务特性,将组件拆分为功能不同的功能模块;在对目标组件进行加载时,利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,并将符合所述预定混入策略的功能模块加入模块列表;加载所述模块列表中的功能模块,实现对目标组件的加载;

可见,在本方案中,在对组件进行加载时,可根据预定的混入策略选择对应的功能模块,不必加载所有的功能模块,实现细粒度且多样的方式来处理功能模块的动态加载,对模块加载做到更加细粒度的控制,提高系统性能,避免出现代码量膨胀现象;本发明还公开了一种组件加载装置,同样能实现上述技术效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种组件加载方法流程示意图;

图2为本发明实施例公开的一种表格组件配置示意图;

图3为本发明实施例公开的一种具体的组件加载方法流程示意图;

图4为本发明实施例公开的一种组件加载装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种组件加载方法及装置,以实现提高系统性能,避免出现代码量膨胀现象。

参见图1,本发明实施例提供的一种组件加载方法,包括:

S101、根据组件业务特性,将组件拆分为功能不同的功能模块;

具体的,本方案加载组件之前,首先需要将与组件对应的模块进行拆分,即按照功能拆分成不同的功能模块,这样在进行加载时,则可根据不能功能模块所实现的功能,进行选择性加载,而不需要加载全部代码。

S102、在对目标组件进行加载时,利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,并将符合所述预定混入策略的功能模块加入模块列表;

S103、加载所述模块列表中的功能模块,实现对目标组件的加载。

其中,所述在对目标组件进行加载时,利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,包括:

加载目标组件时,确定与所述目标组件对应的目标混入策略;

根据所述目标混入策略,从所述目标组件的功能模块中查找符合所述目标混入策略的功能模块。

具体的,在本实施例中对组件进行加载时,例如:对页面进行模块列表计算时,需要遍历每个组件,在计算每个组件的依赖时,依次计算当前组件的混入策略,这里的混入策略包括:配置混入策略、关联混入策略和动态混入策略,按照相应的策略计算对应的功能模块,并将该功能模块添加至模块列表中,从而实现对组件的加载。

基于上述实施例,在本实施例中,所述利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,并将符合所述预定混入策略的功能模块加入模块列表,包括:

若所述目标混入策略为配置混入策略,则检测所述目标组件的功能模块的属性开关状态;

将所述属性开关状态为允许状态的功能模块,添加至所述模块列表。

具体的,本实施例中的混入策略为配置混入策略,则根据元数据配置,在检测到对应的子模块属性开启后,就自动加载对应的模块。

参见图2,以表格组件为例,若一个表格组件包括以下功能:

基本显示功能;取数功能;冻结功能;分页功能;多表头功能;合计功能……。

设计时每个功能对应一个属性开关,每个功能对应一个子模块,也就是一个子JS文件,如果某个页面只是用了表格组件的显示功能,取数功能,分页功能,相应的开关会打开,在运行期就会自动加载对应的子功能模块;需要说明的是,开关打开则代表该属性开关状态为允许状态。

基于上述实施例,在本实施例中,所述利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,并将符合所述预定混入策略的功能模块加入模块列表,包括:

若所述目标混入策略为关联混入策略,则检测当前页面的页面类型;

从所述目标组件的功能模块中查找,与所述页面类型相关联的功能模块,并添加至所述模块列表。

具体的,本实施例中的关联混入策略为:自动的根据组件与模板之间的关联来加载某个模块;需要说明的是,本实施例中的关联混入策略主要是对页面来说,如果编辑界面使用了附件管理,那么编辑界面和附件之间参数设置相关的交互代码,应该写到一个新的功能模块中,模块名为edit_attachment,当需要加载附件模块之后,就会找出当前页面的类型为edit,从而匹配出对应的功能模块edit_attachment,并将此模块加入到页面的模块列表中。

基于上述实施例,在本实施例中,所述利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,并将符合所述预定混入策略的功能模块加入模块列表,包括:

若所述目标混入策略为动态混入策略,则根据接口及函数计算结果,从所述目标组件的功能模块中确定待加载的功能模块,并添加至所述模块列表。

具体的,本实施例中的动态混入策略为,以写代码的方式动态的加载某个子模块或者功能,在动态混入策略中,提供一个接口,业务需要通过这个接口来根据业务场景来实现那些模块需要引入,那些模块不需要引入。例如:用户打开了界面,填入了价格,如果填入的价格大于100,则加载功能模块A,如果填入的加个小于100,则加载模块B,这种加载方式取决于用户的选择或者输入,属于动态方式,相应的判断代码呈现在接口中。

基于上述任意实施例,在混入策略中还可以包括静态混入策略,通过直接在JS代码中编写的一种方式,比如分页逻辑混入到表格中。参见图3,为本实施例提供的几种混入策略在运行期计算图,以图示的方式综合说明了本发明的三种混入方式的概要情况,整个图示的过程是计算页面模块的过程,这个过程是需要一个遍历组件树的过程,在遍历每个组件的时候,依次判断当前组件的混入策略,例如:配置混入策略、关联混入策略和动态混入策略,,按照相应的策略确定对应的功能模块,并将对应的功能模块添加至模块列表中,等待被加载。

在此,通过具体实施例对本方案进行详细描述:

若以含有4个组件的页面为例,分别是查询组件,菜单按钮组件,普通按钮组件,表格组件。当页面运行的时候,需要将这4个组件对应的功能模块加载出来,这个页面才能正常运行,否则不能正常运行,每个页面对应一个模块列表,模块列表中的具体内容通过三种策略计算而来。每个组件对应的功能模块详见表1。

表1

在表1中,查询组件包含了三个模块,一个是基本查询模块,一个是给列表模板使用的专有模块,最后一个是给编辑模块使用的专有模块。菜单按钮和普通按钮均只包含一个模块。表格组件包含了五个模块,基本表格模块是只要拖入了表格组件,必须加载的一个模块,其余四个模块有可能根据配置参数决定的,也有可能根据条件动态决定是否加载对应的模块。

以关联混入策略为例,若页面是一个列表界面,因此查询组件需要加载:基本查询模块、列表模板_查询模块。基本查询模块是必须加载的,而列表模板_查询模块是根据关联混入策略计算出来的,因为这个子模块是查询模块和列表模板的关联模块。如果页面是一个编辑页面,则查询组件需要加载:基本查询模块、编辑模板_查询模块。需要说明的是,页面所使用的模板通常和对应的组件存在关联模块才行,如果不存在关联模块,则根据关联混入策略计算的模块为空。比如普通按钮和列表模板之间就不存在关系,因此计算出来的关联模块为空。

以配置混入策略为例,表格模块中的基本模块肯定会加载,如果配置了分页开关,则会加载分页模块,这是根据配置混入策略计算而得的结果。具体来说,是根据开关是否打开来判断是否加载对应的模块。

以动态混入策略为例,根据接口或者函数的计算结果来决定是否加载某个模块。比如如果当前页面是查看状态,此时只能查看页面数据,不能修改数据,因此就不能加载表格组件中的编辑模块。如果当前的页面状态是编辑模式,就必须加载表格组件中的编辑模块。

通过以上分析计算最后得出对应例子中的页面的模块列表包含以下模块:基本查询模块、列表模板_查询模块、菜单按钮模块、普通按钮模块、基本表格模块,通过对上述功能模块的加载,实现了对每个组件的加载。

综上可见,本方案通过多种混入方式,以更加细粒度并且多样的方式来处理模块的动态加载,可以对模块加载做到更加细粒度的控制,减少页面运行期的传输量和执行时间,提高页面访问的性能。

下面对本发明实施例提供的组件加载装置进行介绍,下文描述的组件加载装置与上文描述的组件加载方法可以相互参照。

参见图4,本发明实施例提供的一种组件加载装置,包括:

功能模块拆分模块100,用于根据组件业务特性,将组件拆分为功能不同的功能模块;

功能模块选取模块200,用于在对目标组件进行加载时,利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,并将符合所述预定混入策略的功能模块加入模块列表;

加载模块300,用于加载所述模块列表中的功能模块,实现对目标组件的加载。

基于上述实施例,所述功能模块选取模块包括:

目标混入策略确定单元,用于加载目标组件时,确定与所述目标组件对应的目标混入策略;

功能模块添加单元,用于根据所述目标混入策略,从所述目标组件的功能模块中查找符合所述目标混入策略的功能模块。

基于上述实施例,所述功能模块添加单元,包括:

第一检测子单元,用于在所述目标混入策略为配置混入策略时,检测所述目标组件的功能模块的属性开关状态;

第一添加子单元,用于将所述属性开关状态为允许状态的功能模块,添加至所述模块列表。

基于上述实施例,所述功能模块添加单元,包括:

第二检测子单元,用于在所述目标混入策略为关联混入策略时,检测当前页面的页面类型;

第二添加子单元,用于从所述目标组件的功能模块中查找与所述页面类型相关联的功能模块,并添加至所述模块列表。

基于上述实施例,所述功能模块添加单元,包括:

第三添加子单元,用于在所述目标混入策略为动态混入策略时,根据接口及函数计算结果,从所述目标组件的功能模块中确定待加载的功能模块,并添加至所述模块列表。

本发明实施例提供的一种组件加载方法,包括:根据组件业务特性,将组件拆分为功能不同的功能模块;在对目标组件进行加载时,利用预定混入策略,从所述目标组件的功能模块中查找符合所述预定混入策略的功能模块,并将符合所述预定混入策略的功能模块加入模块列表;加载所述模块列表中的功能模块,实现对目标组件的加载;

可见,在本方案中,在对组件进行加载时,可根据预定的混入策略选择对应的功能模块,不必加载所有的功能模块,实现细粒度且多样的方式来处理功能模块的动态加载,对模块加载做到更加细粒度的控制,提高系统性能,避免出现代码量膨胀现象;本发明还公开了一种组件加载装置,同样能实现上述技术效果。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1