CN108170493B - 一种系统模块的加载方法、系统及装置 - Google Patents
一种系统模块的加载方法、系统及装置 Download PDFInfo
- Publication number
- CN108170493B CN108170493B CN201711441954.6A CN201711441954A CN108170493B CN 108170493 B CN108170493 B CN 108170493B CN 201711441954 A CN201711441954 A CN 201711441954A CN 108170493 B CN108170493 B CN 108170493B
- Authority
- CN
- China
- Prior art keywords
- module
- target module
- loading
- target
- dependent
- 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
Classifications
-
- 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/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种系统模块的加载方法、系统及装置,方法包括:注册目标模块的委托;判断目标模块是否加载成功;根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载;判断依赖模块是否加载成功;获取目标模块的启动参数,创建目标模块的模块实例。系统包括注册模块、第一判断模块、异步处理模块、第二判断模块以及创建模块;装置包括存储器和处理器。本发明无需在系统初始化阶段就加载完成所有模块,大大提高了模块的加载速度以及工作效率;另外,本发明通过异步处理法对目标模块的依赖模块进行加载,降低了系统的工作负载,提高了系统的处理速度,可广泛应用于页面加载技术领域。
Description
技术领域
本发明涉及页面加载技术领域,尤其是一种系统模块的加载方法、系统及装置。
背景技术
随着互联网技术的不断发展,越来越多功能多样、架构复杂的页面系统在市场上出现。传统的系统模块加载方法是在系统初始化阶段就开始加载模块,模块加载成功后得到对应的模块实例,最终在显示界面中进行显示。但是,系统中的模块往往不是独立存在的,各个模块之间存在相应的依赖关系,上述的模块加载方法要求系统在初始化阶段就完成所有模块的加载,但其中的大部分模块是无需使用的,导致模块的加载速度很慢。
另外,现有采用同步加载系统模块的方法要求系统同时对多个模块进行加载,在加大了系统负载的同时,还降低了系统的任务处理速度,导致工作效率很低。
发明内容
为解决上述技术问题,本发明的目的在于:提供一种加载速度快且效率高的,系统模块的加载方法、系统及装置。
本发明所采取的第一技术方案是:
一种系统模块的加载方法,包括以下步骤:
注册目标模块的委托;
判断目标模块是否加载成功,若是,则得到目标模块的模块实例;反之,则加载目标模块的委托并执行下一步骤;
根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载;其中,所述依赖模块指的是与目标模块存在依赖关系的其他功能模块;所述依赖树是所有依赖模块构成的一个索引树;
判断依赖模块是否加载成功,若是,则执行下一步骤;反之,则将依赖模块加载失败的消息进行广播;
获取目标模块的启动参数,创建目标模块的模块实例。
进一步,所述根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载这一步骤,包括以下步骤:
根据目标模块的委托,获取目标模块的配置信息;
根据目标模块的配置信息,获取目标模块的所有依赖模块;
根据获取的依赖模块,生成目标模块的依赖树;
根据目标模块的依赖树,对依赖模块进行逐一加载。
进一步,所述根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载这一步骤,还包括对依赖模块的加载结果进行广播监听的步骤。
进一步,所述获取目标模块的启动参数,创建目标模块的模块实例这一步骤,具体为:
判断目标模块的启动参数是否获取成功,若是,则创建目标模块的实例;反之,则对启动参数的获取结果进行广播。
进一步,所述创建目标模块的模块实例这一步骤,包括以下步骤:
创建目标模块的模块实例;
将创建的模块实例添加至模块管理容器;
将目标模块加载成功的消息进行广播。
进一步,还包括根据目标模块的实例,调用相应的系统功能的步骤。
本发明所采取的第二技术方案是:
一种系统模块的加载系统,包括:
注册模块,用于注册目标模块的委托;
第一判断模块,用于判断目标模块是否加载成功,若是,则得到目标模块的模块实例;反之,则加载目标模块的委托并执行下一步骤;
异步处理模块,用于根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载;
第二判断模块,用于判断依赖模块是否加载成功,若是,则执行下一步骤;反之,则将依赖模块加载失败的消息进行广播;
创建模块,用于获取目标模块的启动参数,创建目标模块的模块实例。
进一步,所述异步处理模块包括:
配置信息获取单元,用于根据目标模块的委托,获取目标模块的配置信息;
依赖模块获取单元,用于根据目标模块的配置信息,获取目标模块的所有依赖模块;
依赖树生成单元,用于根据获取的依赖模块,生成目标模块的依赖树;
依赖模块加载单元,用于根据目标模块的依赖树,对依赖模块进行逐一加载。
进一步,还包括:
调用模块,用于根据目标模块的实例,调用相应的系统功能。
本发明所采取的第三技术方案是:
一种系统模块的加载装置,包括:
存储器,用于存储程序;
处理器,用于加载所述程序以执行如第一技术方案所述的系统模块的加载方法。
本发明的有益效果是:本发明先注册目标模块的委托,然后判断目标模块是否加载成功,若成功,则直接得到目标模块的模块实例,无需在系统初始化阶段就加载完成所有模块,大大提高了模块的加载速度以及工作效率;另外,本发明通过异步处理法对目标模块的依赖模块进行加载,降低了系统的工作负载,提高了系统的处理速度。
附图说明
图1为本发明一种系统模块的加载方法的步骤流程图;
图2为本发明一种系统模块的加载系统的结构框图。
具体实施方式
下面结合说明书附图和具体实施例对本发明作进一步解释和说明。对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
参照图1,本发明一种系统模块的加载方法,包括以下步骤:
注册目标模块的委托;
判断目标模块是否加载成功,若是,则得到目标模块的模块实例;反之,则加载目标模块的委托并执行下一步骤;
根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载;其中,所述依赖模块指的是与目标模块存在依赖关系的其他功能模块;所述依赖树是所有依赖模块构成的一个索引树;
判断依赖模块是否加载成功,若是,则执行下一步骤;反之,则将依赖模块加载失败的消息进行广播;
获取目标模块的启动参数,创建目标模块的模块实例。
其中,目标模块是指待加载的系统功能模块;委托是IOS系统开发中的专有名词,其代码表示为Delegate()。
进一步作为优选的实施方式,所述根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载这一步骤,包括以下步骤:
根据目标模块的委托,获取目标模块的配置信息;
根据目标模块的配置信息,获取目标模块的所有依赖模块;
根据获取的依赖模块,生成目标模块的依赖树;
根据目标模块的依赖树,对依赖模块进行逐一加载。
进一步作为优选的实施方式,所述根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载这一步骤,还包括对依赖模块的加载结果进行广播监听的步骤。
进一步作为优选的实施方式,所述获取目标模块的启动参数,创建目标模块的模块实例这一步骤,具体为:
判断目标模块的启动参数是否获取成功,若是,则创建目标模块的实例;反之,则对启动参数的获取结果进行广播。
进一步作为优选的实施方式,所述创建目标模块的模块实例这一步骤,包括以下步骤:
创建目标模块的模块实例;
将创建的模块实例添加至模块管理容器;
将目标模块加载成功的消息进行广播。
进一步作为优选的实施方式,还包括根据目标模块的实例,调用相应的系统功能的步骤。
参照图2,本发明一种系统模块的加载系统,包括:
注册模块,用于注册目标模块的委托;
第一判断模块,用于判断目标模块是否加载成功,若是,则得到目标模块的模块实例;反之,则加载目标模块的委托并执行下一步骤;
异步处理模块,用于根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载;
第二判断模块,用于判断依赖模块是否加载成功,若是,则执行下一步骤;反之,则将依赖模块加载失败的消息进行广播;
创建模块,用于获取目标模块的启动参数,创建目标模块的模块实例。
进一步作为优选的实施方式,所述异步处理模块包括:
配置信息获取单元,用于根据目标模块的委托,获取目标模块的配置信息;
依赖模块获取单元,用于根据目标模块的配置信息,获取目标模块的所有依赖模块;
依赖树生成单元,用于根据获取的依赖模块,生成目标模块的依赖树;
依赖模块加载单元,用于根据目标模块的依赖树,对依赖模块进行逐一加载。
进一步作为优选的实施方式,还包括:
调用模块,用于根据目标模块的实例,调用相应的系统功能。
与图1的方法相对应,本发明一种系统模块的加载装置,包括:
存储器,用于存储程序;
处理器,用于加载所述程序以执行本发明的系统模块的加载方法。
本发明一种系统模块的加载方法的具体工作过程如下:
S1、注册目标模块的委托;
S2、请求获取目标模块的实例;
其中,步骤S2包括以下步骤:
S21、根据目标模块的委托,获取目标模块的配置信息;
S22、根据目标模块的配置信息,获取目标模块的所有依赖模块;
S23、根据获取的依赖模块,生成目标模块的依赖树;
S24、根据目标模块的依赖树,对依赖模块进行逐一加载;
S25、对依赖模块的加载结果进行广播监听,当所有依赖模块都加载成功后,执行步骤S3;若有依赖模块加载不成功,则对依赖模块加载失败的消息进行广播,同时结束目标模块的加载进程。
S3、获取目标模块的启动参数,创建目标模块的模块实例;
所述步骤S3包括以下步骤:
S31、判断目标模块的启动参数是否获取成功,若是,则创建目标模块的实例;反之,则对启动参数的获取结果进行广播。
S32、创建目标模块的模块实例;
S33、将创建的模块实例添加至模块管理容器;
S34、将目标模块加载成功的消息进行广播。
S4、根据目标模块的实例,调用相应的系统功能。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (8)
1.一种系统模块的加载方法,其特征在于:包括以下步骤:
注册目标模块的委托;
判断目标模块是否加载成功,若是,则得到目标模块的模块实例;反之,则加载目标模块的委托并执行下一步骤;
根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载;其中,所述依赖模块指的是与目标模块存在依赖关系的其他功能模块;所述依赖树是所有依赖模块构成的一个索引树;
判断依赖模块是否加载成功,若是,则执行下一步骤;反之,则将依赖模块加载失败的消息进行广播;
获取目标模块的启动参数,创建目标模块的模块实例;
所述根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载这一步骤,包括以下步骤:
根据目标模块的委托,获取目标模块的配置信息;
根据目标模块的配置信息,获取目标模块的所有依赖模块;
根据获取的依赖模块,生成目标模块的依赖树;
根据目标模块的依赖树,对依赖模块进行逐一加载。
2.根据权利要求1所述的一种系统模块的加载方法,其特征在于:所述根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载这一步骤,还包括对依赖模块的加载结果进行广播监听的步骤。
3.根据权利要求1所述的一种系统模块的加载方法,其特征在于:所述获取目标模块的启动参数,创建目标模块的模块实例这一步骤,具体为:
判断目标模块的启动参数是否获取成功,若是,则创建目标模块的实例;反之,则对启动参数的获取结果进行广播。
4.根据权利要求3所述的一种系统模块的加载方法,其特征在于:所述创建目标模块的模块实例这一步骤,包括以下步骤:
创建目标模块的模块实例;
将创建的模块实例添加至模块管理容器;
将目标模块加载成功的消息进行广播。
5.根据权利要求1所述的一种系统模块的加载方法,其特征在于:还包括根据目标模块的实例,调用相应的系统功能的步骤。
6.一种系统模块的加载系统,其特征在于:包括:
注册模块,用于注册目标模块的委托;
第一判断模块,用于判断目标模块是否加载成功,若是,则得到目标模块的模块实例;反之,则加载目标模块的委托并执行下一步骤;
异步处理模块,用于根据目标模块的委托,生成目标模块的依赖树,并通过异步处理法对目标模块的依赖模块进行加载;
第二判断模块,用于判断依赖模块是否加载成功,若是,则执行下一步骤;反之,则将依赖模块加载失败的消息进行广播;
创建模块,用于获取目标模块的启动参数,创建目标模块的模块实例;所述异步处理模块包括:
配置信息获取单元,用于根据目标模块的委托,获取目标模块的配置信息;
依赖模块获取单元,用于根据目标模块的配置信息,获取目标模块的所有依赖模块;
依赖树生成单元,用于根据获取的依赖模块,生成目标模块的依赖树;
依赖模块加载单元,用于根据目标模块的依赖树,对依赖模块进行逐一加载。
7.根据权利要求6所述的一种系统模块的加载系统,其特征在于:还包括:
调用模块,用于根据目标模块的实例,调用相应的系统功能。
8.一种系统模块的加载装置,其特征在于:包括:
存储器,用于存储程序;
处理器,用于加载所述程序以执行如权利要求1-5任一项所述的系统模块的加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711441954.6A CN108170493B (zh) | 2017-12-27 | 2017-12-27 | 一种系统模块的加载方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711441954.6A CN108170493B (zh) | 2017-12-27 | 2017-12-27 | 一种系统模块的加载方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108170493A CN108170493A (zh) | 2018-06-15 |
CN108170493B true CN108170493B (zh) | 2021-01-26 |
Family
ID=62521838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711441954.6A Active CN108170493B (zh) | 2017-12-27 | 2017-12-27 | 一种系统模块的加载方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170493B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874246A (zh) * | 2018-08-28 | 2020-03-10 | Tcl集团股份有限公司 | 一种模块加载方法、系统及设备 |
CN111273956B (zh) * | 2020-01-17 | 2024-03-01 | 广州虎牙科技有限公司 | 一种程序模块加载方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073686A (zh) * | 2010-12-24 | 2011-05-25 | 汉柏科技有限公司 | 一种页面文件的垂直动态加载方法及装置 |
CN102999608A (zh) * | 2012-11-21 | 2013-03-27 | 用友软件股份有限公司 | 大数据的树表展现系统和树表展现方法 |
CN103440151A (zh) * | 2013-09-05 | 2013-12-11 | 北京京东尚科信息技术有限公司 | 一种动态加载Web页面的方法和装置 |
CN105608152A (zh) * | 2015-12-17 | 2016-05-25 | 无锡天脉聚源传媒科技有限公司 | 一种网页资源异步加载的方法及装置 |
US9525721B2 (en) * | 2013-01-23 | 2016-12-20 | International Business Machines Corporation | Client-side aggregation of nested resource dependencies |
JP2017182221A (ja) * | 2016-03-28 | 2017-10-05 | 株式会社Skeed | 自動負荷分散情報処理システム |
CN107329785A (zh) * | 2017-06-27 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种动态加载JavaScript模块的方法及系统 |
-
2017
- 2017-12-27 CN CN201711441954.6A patent/CN108170493B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073686A (zh) * | 2010-12-24 | 2011-05-25 | 汉柏科技有限公司 | 一种页面文件的垂直动态加载方法及装置 |
CN102999608A (zh) * | 2012-11-21 | 2013-03-27 | 用友软件股份有限公司 | 大数据的树表展现系统和树表展现方法 |
US9525721B2 (en) * | 2013-01-23 | 2016-12-20 | International Business Machines Corporation | Client-side aggregation of nested resource dependencies |
CN103440151A (zh) * | 2013-09-05 | 2013-12-11 | 北京京东尚科信息技术有限公司 | 一种动态加载Web页面的方法和装置 |
CN105608152A (zh) * | 2015-12-17 | 2016-05-25 | 无锡天脉聚源传媒科技有限公司 | 一种网页资源异步加载的方法及装置 |
JP2017182221A (ja) * | 2016-03-28 | 2017-10-05 | 株式会社Skeed | 自動負荷分散情報処理システム |
CN107329785A (zh) * | 2017-06-27 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种动态加载JavaScript模块的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108170493A (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104683457A (zh) | 并发控制的方法及装置 | |
CN108170493B (zh) | 一种系统模块的加载方法、系统及装置 | |
CN113490192A (zh) | 蓝牙连接方法、装置、终端设备及可读存储介质 | |
CN105847319A (zh) | 一种移动终端网络请求方法及系统 | |
CN109800078B (zh) | 一种任务处理方法、任务分发终端及任务执行终端 | |
CN108965403B (zh) | 运维监控连接的建立方法及终端设备 | |
CN113727429A (zh) | 跨网络组的时钟同步方法、装置、存储介质和终端 | |
CN110795162B (zh) | 生成容器镜像文件的方法和装置 | |
CN106294451B (zh) | 一种数据处理中显示处理进度的方法及其装置 | |
CN105302557A (zh) | 线程建立及处理的方法及装置 | |
CN104407846B (zh) | 一种信息处理方法及装置 | |
CN109005163A (zh) | 一种http动态请求服务调用方法 | |
CN109542726B (zh) | 一种功耗的检测方法及装置 | |
CN110231964B (zh) | 一种动态加载js资源时防止重复请求的方法 | |
CN107368321B (zh) | 一种软件版本演进方法及系统 | |
CN109582680B (zh) | 基于新产品开发的业务处理方法、电子装置及可读存储介质 | |
CN110020268B (zh) | 页面返回方法及装置 | |
CN111444253A (zh) | 数据导入方法、装置、计算机可读存储介质和计算机设备 | |
EP2768206A1 (en) | Download management method and device based on android browser | |
CN108804074B (zh) | 一种数据处理方法、装置、硬件装置、存储介质及芯片 | |
CN111314303B (zh) | 直播系统、直播系统的数据处理方法及装置 | |
CN109377177B (zh) | 流程处理方法、装置、设备和计算机可读存储介质 | |
CN113778673B (zh) | 数据处理方法、存储介质及设备 | |
US20100262416A1 (en) | Computer and method for simulating an attention command test of a mobile phone | |
CN108694249B (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 | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20180615 Assignee: Guangzhou Caiyun Technology Co.,Ltd. Assignor: GUANGZHOU ANSHITONG INFORMATION TECHNOLOGY CO.,LTD. Contract record no.: X2023980037203 Denomination of invention: A loading method, system, and device for system modules Granted publication date: 20210126 License type: Common License Record date: 20230630 |