CN114816559A - 模块加载方法、装置、存储介质及电子设备 - Google Patents
模块加载方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114816559A CN114816559A CN202210228812.6A CN202210228812A CN114816559A CN 114816559 A CN114816559 A CN 114816559A CN 202210228812 A CN202210228812 A CN 202210228812A CN 114816559 A CN114816559 A CN 114816559A
- Authority
- CN
- China
- Prior art keywords
- module
- target
- end module
- target front
- loading
- 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
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 123
- 238000000034 method Methods 0.000 claims abstract description 51
- 244000035744 Hura crepitans Species 0.000 claims abstract description 38
- 230000006870 function Effects 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 4
- 238000002955 isolation Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
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)
- Information Transfer Between Computers (AREA)
Abstract
本说明书公开了一种模块加载方法、装置、存储介质及电子设备,方法包括:获取通过第三方应用进行目标前端模块的加载请求,然后基于预定义的全局函数获取所述加载请求对应的所述目标前端模块,并将所述目标前端模块放入预创建的前端沙箱中,最后获取所述目标前端模块对应的目标模块对象,实现了加载目标前端模块过程中的安全隔离。
Description
技术领域
本说明书涉及前端模块加载技术领域,尤其涉及一种模块加载方法、装置、存储介质及电子设备。
背景技术
随着互联网技术的飞速发展,各类软件APP之间可以数据共享、互相协作,在一些场景下,为满足用户的需要,需要在不同应用之间实现数据信息的共享。这种场景下,常伴随着第三方应用需要跨应用加载前端模块。
发明内容
本说明书实施例提供的一种模块加载方法、装置、存储介质及电子设备,可以在远程加载前端模块资源时,对前端模块资源进行安全隔离。所述技术方案如下:
第一方面,本说明书实施例提供的一种模块加载方法,所述方法包括:
获取通过第三方应用进行目标前端模块的加载请求;
基于预定义的全局函数获取所述加载请求对应的所述目标前端模块,并将所述目标前端模块放入预创建的前端沙箱中;
获取所述目标前端模块对应的目标模块对象。
第二方面,本说明书实施例提供的一种模块加载装置,所述目标模块加载装置包括:
请求获取单元,用于获取通过第三方应用进行目标前端模块的加载请求;
模块获取单元,用于基于预定义的全局函数获取所述加载请求对应的所述目标前端模块,并将所述目标前端模块放入预创建的前端沙箱中;
模块对象获取单元,用于获取所述目标前端模块对应的目标模块对象。
第三方面,本说明书实施例提供一种存储介质,所述存储介质存储有至少一条指令,所述至少一条指令适于由处理器加载并执行上述的方法步骤。
第四方面,本说明书实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有至少一条指令,所述至少一条指令适于由所述处理器加载并执行上述的方法步骤。
本说明书一些实施例提供的技术方案带来的有益效果至少包括:
采用本说明书实施例提供的模块加载方法,通过获取通过第三方应用进行目标前端模块的加载请求,然后基于预定义的全局函数获取所述加载请求对应的所述目标前端模块,并将所述目标前端模块放入预创建的前端沙箱中,最后获取所述目标前端模块对应的目标模块对象,实现了在远程加载前端模块资源时,对前端模块资源进行安全隔离,避免前端模块的加载过程影响到第三方应用宿主。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的一种模块加载方法的流程示意图;
图2为本说明书实施例提供的一种模块加载方法的流程示意图;
图3为本说明书实施例提供的一种缓存目标模块对象的举例示意图;
图4为本说明书实施例提供的一种模块加载方法的流程图;
图5为本说明书实施例提供的一种模块加载装置的结构示意图;
图6为本说明书实施例提供的一种模块对象获取单元的结构示意图;
图7为本说明书实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
在本说明书的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本说明书的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本说明书中的具体含义。此外,在本说明书的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
随着互联网技术的飞速发展,各类软件APP之间可以数据共享、互相协作,在一些场景下,为满足用户的需要,需要在不同应用之间实现数据信息的共享。这种场景下,常伴随着第三方应用需要跨应用加载前端模块。
现有技术中,第三方应用远程加载前端模块时,通常加载的是公网资源、跨应用资源等,然而在第三方应用加载公网或跨应用的前端模块过程中,可能会对第三方应用产生影响,例如,修改第三方应用的现有模块规范、模块重复加载等问题,无法保证前端模块加载过程的独立安全。
基于此,本说明书提出了一种模块加载方法,通过获取通过第三方应用进行目标前端模块的加载请求,然后基于预定义的全局函数获取所述加载请求对应的所述目标前端模块,并将所述目标前端模块放入预创建的前端沙箱中,最后获取所述目标前端模块对应的目标模块对象,实现了在远程加载前端模块资源时,对前端模块资源进行安全隔离,避免前端模块的加载过程影响到第三方应用宿主。
下面结合具体的实施例进行详细说明。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。附图中所示的流程图仅是示例性说明,不是必须按照所示步骤执行。例如,有的步骤是并列的,在逻辑上并没有严格的先后关系,因此实际执行顺序是可变的。
请参见图1,为本说明书实施例提供的一种模块加载方法的流程示意图。在具体的实施例中,所述模块加载方法应用于模块加载装置以及配置有模块加载装置的电子设备。下面将以电子设备为例,说明本实施例的具体流程,当然,可以理解的,本实施例所应用的电子设备可以为智能手机、平板电脑、台式电脑、可穿戴式设备等,在此不做限定。下面将针对图1所示的流程进行详细的阐述,所述模块加载方法具体可以包括以下步骤:
S102,获取通过第三方应用进行目标前端模块的加载请求;
具体的,在第三方应用中需要加载目标前端模块以满足第三方应用的某些需求时,获取第三方应用发出的对目标前端模块的加载请求,以使根据对目标前端模块的加载请求获取目标前端模块。
所述目标前端模块为第三方应用之外的模块,目标前端模块可以挂载在公网中。
S104,基于预定义的全局函数获取加载请求对应的目标前端模块,并将目标前端模块放入预创建的前端沙箱中;
全局函数即通用模块定义规范(Universal Module Definition,UMD)中的一个全局变量定义函数,用于获取前端模块并执行前端模块以得到模块对象。通用模块定义规范就是一种javascript通用模块定义规范,让你的模块能在javascript所有运行环境中发挥作用。
在本说明书一个或多个实施例中,对通用模块定义规范(Universal ModuleDefinition,UMD)中的全局变量定义函数进行重新定义,重新定义后的全局变量定义函数即所述预定义的全局函数。
前端沙箱即是一种按照安全策略限制程序行为的虚拟执行环境,在这个虚拟执行环境中运行的程序都是独立的,不会对现有操作系统造成影响。
在本说明一个或多个实施例中,前端沙箱均是预先创建完成的,即在步骤S102之前,创建一个前端沙箱,并在创建的前端沙箱中重新定义通用模块定义规范(UniversalModule Definition,UMD)中的全局变量定义函数。
具体的,预定义的全局函数根据第三方应用对目标前端模块的加载请求从公网获取该目标前端模块,并将该目标前端模块获取至前端沙箱。
S106,获取目标前端模块对应的目标模块对象。
具体的,在前端沙箱中,基于预定义的全局函数执行目标前端模块得到目标前端模块对应的目标模块对象,第三方应用调用该与目标前端模块对应的目标模块对象在第三方应用的界面进行显示。
在本说明书一个或多个实施例中,在基于预定义的全局函数执行目标前端模块得到目标前端模块对应的目标模块对象之后,可以将目标模块对象挂载在全局,以使得第三方应用从全局调用目标模块对象。
在本说明书一个或多个实施例中,在基于预定义的全局函数执行目标前端模块得到目标前端模块对应的目标模块对象之后,可以将目标模块对象缓存至预先创建的模块缓存队列中,以使得第三方应用从模块缓存队列中调用目标模块对象。
可选的,目标模块对象在模块缓存队列中以唯一的缓存标识命名,缓存标识可以基于目标前端模块的模块资源名生成。
在本说明书一个或多个实施例中,在目标前端模块加载完成并将目标模块对象缓存至模块缓存队列中之后,若第三方应用再次发出对目标前端模块的加载请求,此时,无需再次加载目标前端模块,直接调用模块缓存队列中缓存的目标模块对象即可。
采用本说明书实施例提供的模块加载方法,通过获取通过第三方应用进行目标前端模块的加载请求,然后基于预定义的全局函数获取所述加载请求对应的所述目标前端模块,并将所述目标前端模块放入预创建的前端沙箱中,最后获取所述目标前端模块对应的目标模块对象,实现了在远程加载前端模块资源时,对前端模块资源进行安全隔离,避免前端模块的加载过程影响到第三方应用宿主。
请参见图2,为本说明书实施例提供的一种模块加载方法的流程示意图。如图2所示,所述模块加载方法可以包括以下步骤:
S202,获取通过第三方应用进行目标前端模块的加载请求;
具体的,在第三方应用中需要加载目标前端模块以满足第三方应用的某些需求时,获取第三方应用发出的对目标前端模块的加载请求,以使根据对目标前端模块的加载请求获取目标前端模块。
所述目标前端模块为第三方应用之外的模块,目标前端模块可以挂载在公网中。
S204,基于加载请求判断目标前端模块是否被缓存过;
具体的,根据加载请求确定要加载的目标前端模块,根据目标前端模块的模块资源名判断目标前端模块是否被缓存过,若目标前端模块未被缓存过,则模块缓存队列中不存在与目标前端模块对应的目标模块对象,执行步骤S206;若根据目标前端模块的模块资源名确定目标前端模块被缓存过,则表明模块缓存队列中缓存有与目标前端模块对应的目标模块对象,执行步骤S212。
不难理解,在将目标模块对象缓存至模块缓存队列时,会记录目标模块对象对应的目标前端模块的模块资源名等模块信息,以便于在再次加载目标前端模块时,根据目标前端模块的模块资源名判断目标前端模块是否被缓存过。在确定目标前端模块被缓存过时,可直接从模块缓存队列中调用目标模块对象,无需重复加载目标前端模块,提高了模块加载效率,降低了模块加载过程中的资源消耗。
S206,基于预定义的全局函数获取加载请求对应的目标前端模块,并将目标前端模块放入预创建的前端沙箱中;
具体的,预定义的全局函数根据第三方应用对目标前端模块的加载请求从公网获取该目标前端模块,并将该目标前端模块获取至前端沙箱,以在前端沙箱中执行目标前端模块的加载过程。
S208,基于全局函数执行目标前端模块,得到目标模块对象;
S210,将目标模块对象缓存至预创建的模块缓存队列;
具体的,基于目标前端模块的模块资源名生成与目标前端模块对应的缓存标识,然后将目标模块对象以缓存标识命名后保存至预创建的模块缓存队列。
可选的,缓存标识还可以是基于目标前端模块的大小、缓存时间等特征生成的唯一标识,缓存标识用于表现目标模块对象的唯一性,生成缓存标识的具体方式,本说明书实施例不做具体限定。
请参见图3,为本说明书实施例提供的一种缓存目标模块对象的举例示意图。如图3所示,由全局函数在公网获取目标前端模块到前端沙箱,在前端沙箱中执行目标前端模块得到目标模块对象,然后将目标模块对象缓存至模块缓存队列。
S212,从模块缓存队列中调用与目标前端模块对应的目标模块对象。
具体的,从模块缓存队列中调用与目标前端模块对应的目标模块对象,并将目标模块对象在第三方应用的显示界面进行显示。
采用本说明书实施例提供的模块加载方法,首先获取第三方应用对目标前端模块的加载请求,然后根据加载请求判断目标前端模块是否被缓存过,若目标前端模块被缓存过,直接在模块缓存队列中调用曾经缓存的目标模块对象,无需再次加载目标前端模块,提高了模块加载效率,降低了模块加载过程中的资源消耗;若目标前端模块未被缓存过,则根据加载请从公网获取目标前端模块到前端沙箱,并在前端沙箱中执行目标前端模块得到目标模块对象,实现了目标前端模块加载过程的安全隔离,避免加载过程影响到第三方应用;然后将目标模块对象以唯一缓存标识保存至预创建的模块缓存队列中,以使第三方应用可以根据缓存标识直接从模块缓存队列中调用目标模块对象,避免了将目标模块对象挂载到全局而导致的模块重复加载、模块规范修改等问题。
请参见图4,为本说明书实施例提供的一种模块加载方法的流程图。如图4所示,所述模块加载方法可以包括:
S1,创建前端沙箱;
具体的,在请求加载目标前端模块之前,预创建一个前端沙箱,前端沙箱用于为目标前端模块的加载提供安全的隔离环境。
S2,自定义全局函数;
具体的,对通用模块定义规范(Universal Module Definition,UMD)中的全局变量定义函数进行重新定义得到重新自定义的全局函数,全局函数用于根据加载请求从公网获取目标前端模块,并在前端沙箱中执行目标前端模块。
S3,创建模块缓存队列;
具体的,模块缓存队列用于缓存目标前端模块对应的目标模块对象,避免将目标模块对象挂载至全局,避免对第三方应用的造成模块重复加载、模块规范修改等影响。
S4,获取目标前端模块的加载请求;
具体的,在第三方应用的运行过程中,根据用户需求而发出的对目标前端模块的加载请求。
S6,判断目标前端模块是否被缓存过;
具体的,根据目标前端模块的加载请求判断目标前端模块是否被缓存过。若目标前端模块被缓存过,则执行步骤S10,直接从模块缓存队列中调用目标前端模块;若目标前端模块未被缓存过,则执行步骤S7。
S7,获取目标前端模块;
具体的,由全局函数根据加载请求从公网获取目标前端模块,并将目标前端模块放入至前端沙箱形成的隔离环境中。
S8,执行目标前端模块得到目标模块对象;
具体的,在前端沙箱中,全局函数执行目标前端模块得到目标模块对象。
S9,生成缓存标识,将目标模块对象缓存至模块缓存队列;
具体的,根据目标前端模块的模块资源名生成缓存标识,将目标模块对象以生成的缓存标识命名缓存至模块缓存队列中。
S10,从模块缓存队列中调用目标模块对象。
具体的,从模块缓存队列中调用与目标前端模块对应的目标模块对象,并将目标模块对象在第三方应用的显示界面进行显示。
采用本说明书实施例提供的模块加载方法,首先获取第三方应用对目标前端模块的加载请求,然后根据加载请求判断目标前端模块是否被缓存过,若目标前端模块被缓存过,直接在模块缓存队列中调用曾经缓存的目标模块对象,无需再次加载目标前端模块,提高了模块加载效率,降低了模块加载过程中的资源消耗;若目标前端模块未被缓存过,则根据加载请从公网获取目标前端模块到前端沙箱,并在前端沙箱中执行目标前端模块得到目标模块对象,实现了目标前端模块加载过程的安全隔离,避免加载过程影响到第三方应用;然后将目标模块对象以唯一缓存标识保存至预创建的模块缓存队列中,以使第三方应用可以根据缓存标识直接从模块缓存队列中调用目标模块对象,避免了将目标模块对象挂载到全局而导致的模块重复加载、模块规范修改等问题。
请参见图5,为本说明书实施例提供的一种模块加载装置的结构示意图。如图5所示,该模块加载装置1可以通过软件、硬件或者两者的结合实现成为电子设备的全部或一部分。根据一些实施例,该模块加载装置1包括,请求获取单元11、模块获取单元12以及模块对象获取单元13,具体包括:
请求获取单元11,用于获取通过第三方应用进行目标前端模块的加载请求;
模块获取单元12,用于基于预定义的全局函数获取所述加载请求对应的所述目标前端模块,并将所述目标前端模块放入预创建的前端沙箱中;
模块对象获取单元13,用于获取所述目标前端模块对应的目标模块对象。
可选的,请参见图6,为本说明书实施例提供的一种模块对象获取单元的结构示意图。如图6所示,所述模块对象获取单元13,包括:
模块对象获取子单元131,用于基于所述全局函数获取所述目标前端模块对应的目标模块对象;
模块对象缓存子单元132,用于将所述目标模块对象缓存至预创建的模块缓存队列;
模块对象调用子单元133,用于从所述模块缓存队列中调用所述目标模块对象。
可选的,所述模块对象获取子单元131,具体用于:
基于所述全局函数执行所述目标前端模块,得到目标模块对象。
可选的,所述模块对象缓存子单元132,具体用于:
基于所述目标前端模块的模块资源名生成与所述目标前端模块对应的缓存标识;
将所述目标模块对象以所述缓存标识命名后保存至预创建的模块缓存队列。
可选的,所述模块获取单元12,具体用于:
基于所述加载请求判断所述目标前端模块是否被缓存过;
若所述目标前端模块未被缓存过,则执行所述基于预定义的全局函数获取所述加载请求对应的所述目标前端模块,并将所述目标前端模块放入预创建的前端沙箱中的步骤;
若所述目标前端模块被缓存过,则从所述模块缓存队列中获取所述目标前端模块对应的目标模块对象。
采用本说明书实施例提供的模块加载方法,首先获取第三方应用对目标前端模块的加载请求,然后根据加载请求判断目标前端模块是否被缓存过,若目标前端模块被缓存过,直接在模块缓存队列中调用曾经缓存的目标模块对象,无需再次加载目标前端模块,提高了模块加载效率,降低了模块加载过程中的资源消耗;若目标前端模块未被缓存过,则根据加载请从公网获取目标前端模块到前端沙箱,并在前端沙箱中执行目标前端模块得到目标模块对象,实现了目标前端模块加载过程的安全隔离,避免加载过程影响到第三方应用;然后将目标模块对象以唯一缓存标识保存至预创建的模块缓存队列中,以使第三方应用可以根据缓存标识直接从模块缓存队列中调用目标模块对象,避免了将目标模块对象挂载到全局而导致的模块重复加载、模块规范修改等问题。。
本说明书实施例还提供的一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1~图4所示实施例的所述模块加载方法,具体执行过程可以参见图1~图4所示实施例的具体说明,在此不进行赘述。
本说明书还提供的一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图1~图4示实施例的所述模块加载方法,具体执行过程可以参见图1~图4示实施例的具体说明,在此不进行赘述。
请参考图7示出了本说明书一个示例性实施例提供的电子设备的结构方框图。本说明书中的电子设备可以包括一个或多个如下部件:处理器110、存储器120、输入装置130、输出装置140和总线150。处理器110、存储器120、输入装置130和输出装置140之间可以通过总线150连接。
处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑阵列(programmable logicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中心处理器(centralprocessing unit,CPU)、图像处理器(graphics processing unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(random Access Memory,RAM),也可以包括只读存储器(read-only memory,ROM)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。
其中,输入装置130用于接收输入的指令或数据,输入装置130包括但不限于键盘、鼠标、摄像头、麦克风或触控设备。输出装置140用于输出指令或数据,输出装置140包括但不限于显示设备和扬声器等。在本说明书实施例中,输入装置130可以为温度传感器,用于获取电子设备的运行温度。输出装置140可以为扬声器,用于输出音频信号。
除此之外,本领域技术人员可以理解,上述附图所示出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,电子设备中还包括射频电路、输入单元、传感器、音频电路、无线保真(wireless fidelity,WiFi)模块、电源、蓝牙模块等部件,在此不再赘述。
在本说明书实施例中,各步骤的执行主体可以是上文介绍的电子设备。可选地,各步骤的执行主体为电子设备的操作系统。操作系统可以是安卓系统,也可以是IOS系统,或者其它操作系统,本说明书实施例对此不作限定。
在图7的电子设备中,处理器110可以用于调用存储器120中存储的模块加载程序,并执行以实现如本说明书各个方法实施例所述的模块加载方法。
采用本说明书实施例提供的模块加载方法,首先获取第三方应用对目标前端模块的加载请求,然后根据加载请求判断目标前端模块是否被缓存过,若目标前端模块被缓存过,直接在模块缓存队列中调用曾经缓存的目标模块对象,无需再次加载目标前端模块,提高了模块加载效率,降低了模块加载过程中的资源消耗;若目标前端模块未被缓存过,则根据加载请从公网获取目标前端模块到前端沙箱,并在前端沙箱中执行目标前端模块得到目标模块对象,实现了目标前端模块加载过程的安全隔离,避免加载过程影响到第三方应用;然后将目标模块对象以唯一缓存标识保存至预创建的模块缓存队列中,以使第三方应用可以根据缓存标识直接从模块缓存队列中调用目标模块对象,避免了将目标模块对象挂载到全局而导致的模块重复加载、模块规范修改等问题。。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本说明书较佳实施例而已,当然不能以此来限定本说明书之权利范围,因此依本说明书权利要求所作的等同变化,仍属本说明书所涵盖的范围。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
Claims (10)
1.一种模块加载方法,所述方法包括:
获取通过第三方应用进行目标前端模块的加载请求;
基于预定义的全局函数获取所述加载请求对应的所述目标前端模块,并将所述目标前端模块放入预创建的前端沙箱中;
获取所述目标前端模块对应的目标模块对象。
2.根据权利要求1所述的方法,所述获取所述目标前端模块对应的目标模块对象,包括:
基于所述全局函数获取所述目标前端模块对应的目标模块对象;
将所述目标模块对象缓存至预创建的模块缓存队列;
从所述模块缓存队列中调用所述目标模块对象。
3.根据权利要求2所述的方法,所述基于所述全局函数获取所述目标前端模块对应的目标模块对象,包括:
基于所述全局函数执行所述目标前端模块,得到目标模块对象。
4.根据权利要求2所述的方法,所述将所述目标模块对象缓存至预创建的模块缓存队列,包括:
基于所述目标前端模块的模块资源名生成与所述目标前端模块对应的缓存标识;
将所述目标模块对象以所述缓存标识命名后保存至预创建的模块缓存队列。
5.根据权利要求2所述的方法,所述基于预定义的全局函数获取所述加载请求对应的所述目标前端模块,并将所述目标前端模块放入预创建的前端沙箱中,包括:
基于所述加载请求判断所述目标前端模块是否被缓存过;
若所述目标前端模块未被缓存过,则执行所述基于预定义的全局函数获取所述加载请求对应的所述目标前端模块,并将所述目标前端模块放入预创建的前端沙箱中的步骤。
6.根据权利要求5所述的方法,所述方法还包括:
若所述目标前端模块被缓存过,则从所述模块缓存队列中获取所述目标前端模块对应的目标模块对象。
7.一种模块加载装置,所述装置包括:
请求获取单元,用于获取通过第三方应用进行目标前端模块的加载请求;
模块获取单元,用于基于预定义的全局函数获取所述加载请求对应的所述目标前端模块,并将所述目标前端模块放入预创建的前端沙箱中;
模块对象获取单元,用于获取所述目标前端模块对应的目标模块对象。
8.根据权利要求7所述的装置,所述模块对象获取单元,包括:
模块对象获取子单元,用于基于所述全局函数获取所述目标前端模块对应的目标模块对象;
模块对象缓存子单元,用于将所述目标模块对象缓存至预创建的模块缓存队列;
模块对象调用子单元,用于从所述模块缓存队列中调用所述目标模块对象。
9.一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~6中任意一项所述方法的步骤。
10.一种电子设备,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~6中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210228812.6A CN114816559A (zh) | 2022-03-07 | 2022-03-07 | 模块加载方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210228812.6A CN114816559A (zh) | 2022-03-07 | 2022-03-07 | 模块加载方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114816559A true CN114816559A (zh) | 2022-07-29 |
Family
ID=82529838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210228812.6A Pending CN114816559A (zh) | 2022-03-07 | 2022-03-07 | 模块加载方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114816559A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013097666A1 (zh) * | 2011-12-28 | 2013-07-04 | 北京奇虎科技有限公司 | 基于沙箱技术浏览网页的方法及装置 |
WO2014090982A1 (en) * | 2012-12-14 | 2014-06-19 | Telefonaktiebolaget L M Ericsson (Publ) | Systems, methods, and computer program products for a software build and load process using a compilation and deployment service |
CN111339529A (zh) * | 2020-03-13 | 2020-06-26 | 杭州指令集智能科技有限公司 | 低代码的业务编排构件运行的管理框架与方法、计算设备及介质 |
US20210165666A1 (en) * | 2019-11-29 | 2021-06-03 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method and apparatus for running applet |
CN112988153A (zh) * | 2021-03-17 | 2021-06-18 | 薪得付信息技术(上海)有限公司 | 基于微前端的数据处理方法及框架 |
CN113221097A (zh) * | 2021-05-10 | 2021-08-06 | 挂号网(杭州)科技有限公司 | 一种代码执行方法、装置、电子终端及存储介质 |
-
2022
- 2022-03-07 CN CN202210228812.6A patent/CN114816559A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013097666A1 (zh) * | 2011-12-28 | 2013-07-04 | 北京奇虎科技有限公司 | 基于沙箱技术浏览网页的方法及装置 |
WO2014090982A1 (en) * | 2012-12-14 | 2014-06-19 | Telefonaktiebolaget L M Ericsson (Publ) | Systems, methods, and computer program products for a software build and load process using a compilation and deployment service |
US20210165666A1 (en) * | 2019-11-29 | 2021-06-03 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method and apparatus for running applet |
CN111339529A (zh) * | 2020-03-13 | 2020-06-26 | 杭州指令集智能科技有限公司 | 低代码的业务编排构件运行的管理框架与方法、计算设备及介质 |
CN112988153A (zh) * | 2021-03-17 | 2021-06-18 | 薪得付信息技术(上海)有限公司 | 基于微前端的数据处理方法及框架 |
CN113221097A (zh) * | 2021-05-10 | 2021-08-06 | 挂号网(杭州)科技有限公司 | 一种代码执行方法、装置、电子终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
刁铭智;周渊;李舟军;赵宇飞;: "基于Wine的Windows安全机制模拟及沙箱系统实现", 计算机科学, no. 11, 15 November 2017 (2017-11-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9800609B2 (en) | Method, device and system for detecting malware in a mobile terminal | |
CN109933381B (zh) | 一种内核的加载方法及装置 | |
CN107302628B (zh) | 应用功能的控制方法及相关产品 | |
CN109254793B (zh) | 引擎隔离方法、相关设备以及计算机可读存储介质 | |
CN106681749B (zh) | 基于安卓平台的局部代码补丁更新方法及装置 | |
US11782756B2 (en) | Method and apparatus for scheduling processor core, and storage medium | |
CN108920220B (zh) | 一种函数调用的方法、装置及终端 | |
WO2019072020A1 (en) | METHOD FOR MANAGING NETWORK BANDWIDTH, TERMINAL AND COMPUTER RECORDING MEDIUM | |
CN111259037A (zh) | 一种基于规则配置的数据查询方法、装置、存储介质及终端 | |
CN111078316B (zh) | 布局文件加载方法、装置、存储介质及电子设备 | |
CN107273226B (zh) | 在安卓系统中集成组件及调用被集成组件的方法和装置 | |
CN106919458B (zh) | Hook目标内核函数的方法及装置 | |
CN112308947A (zh) | 一种动画的生成方法、装置及存储介质 | |
CN107463395B (zh) | 组件调用方法及装置 | |
CN112416303B (zh) | 软件开发工具包热修复方法、装置及电子设备 | |
WO2021057411A1 (zh) | 一种组件加载方法、装置及系统 | |
CN114862398A (zh) | 一种基于分布式安全设备的风险控制方法以及相关装置 | |
CN111210496B (zh) | 一种图片解码方法、装置以及设备 | |
CN114816559A (zh) | 模块加载方法、装置、存储介质及电子设备 | |
CN111581664A (zh) | 信息保护方法和装置 | |
CN106709856B (zh) | 一种图形渲染方法及相关设备 | |
CN115629976A (zh) | 一种内核测试方法、装置和存储介质 | |
CN109271156B (zh) | 游戏平台的底层调用方法及相关产品 | |
CN107643951B (zh) | 进程处理方法、装置及电子设备 | |
CN113312572A (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 |