CN113419817B - 前端应用嵌套方法、装置、设备及存储介质 - Google Patents
前端应用嵌套方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113419817B CN113419817B CN202110692038.XA CN202110692038A CN113419817B CN 113419817 B CN113419817 B CN 113419817B CN 202110692038 A CN202110692038 A CN 202110692038A CN 113419817 B CN113419817 B CN 113419817B
- Authority
- CN
- China
- Prior art keywords
- application
- sub
- initial sub
- main
- initial
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 244000035744 Hura crepitans Species 0.000 claims abstract description 125
- 238000012544 monitoring process Methods 0.000 claims abstract description 71
- 230000006870 function Effects 0.000 claims description 29
- 230000001419 dependent effect Effects 0.000 claims description 27
- 230000008859 change Effects 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 6
- 230000003213 activating effect Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000012827 research and development Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000036316 preload Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000006854 communication Effects 0.000 description 2
- 238000003912 environmental pollution Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/451—Execution arrangements for user interfaces
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及研发管理领域,公开了一种前端应用嵌套方法、装置、设备及存储介质,用于提高前端应用嵌套的可维护性。所述前端应用嵌套方法包括:在主应用的配置资源中获取应用配置信息;根据应用配置信息中至少一个初始子应用的路径信息,预加载每个初始子应用;对每个初始子应用创建对应的沙箱环境,并在每个初始子应用对应的沙箱环境中记录对应的全局对象;在主应用中挂载每个初始子应用,并对主应用进行页面路由监听,并根据页面路由监听结果,加载主应用和目标子应用,并更改全局对象的状态。此外,本发明还涉及区块链技术,全局对象数据可存储于区块链节点中。
Description
技术领域
本发明涉及网页配置领域,尤其涉及一种前端应用嵌套方法、装置、设备及存储介质。
背景技术
在终端开发过程中,难免会在主应用中嵌入其它的子应用,例如在主应用中嵌入视频播放的子应用,或者文档查看的子应用,这种应用之间相互嵌套的方法使前端应用的复用性提高,从而提高前端的开发效率。
目前终端应用嵌入的方式大多是采用内联框架Iframe来内嵌应用,但是,Iframe对于大型应用来说存在许多缺点,如多层嵌套难以维护、需额外加载资源文件、以及应用之间存在跨域问题等,可见,现有的终端应用嵌套方式存在资源难以维护的技术问题。
发明内容
本发明提供了一种前端应用嵌套方法、装置、设备及存储介质,用于提高前端应用嵌套的可维护性。
本发明第一方面提供了一种前端应用嵌套方法,包括:
初始化主应用的配置资源,并在所述配置资源中获取应用配置信息,所述应用配置信息包括至少一个初始子应用的路径信息;
根据所述应用配置信息中每个所述初始子应用的路径信息,预加载每个初始子应用,每个所述初始子应用为预先在主应用中注册的子应用;
对每个所述初始子应用创建对应的沙箱环境,并在每个所述初始子应用对应的沙箱环境中记录对应的全局对象;
在所述主应用中挂载每个所述初始子应用,并对所述主应用进行页面路由监听,得到页面路由监听结果;
根据所述页面路由监听结果,加载所述主应用和目标子应用,并根据所述沙箱环境,更改所述全局对象的状态,所述目标子应用为与所述主应用匹配的任意一个初始子应用。
可选的,在本发明第一方面的第一种实现方式中,所述根据所述应用配置信息中每个所述初始子应用的路径信息,预加载每个初始子应用,包括:
根据所述应用配置信息中每个所述初始子应用的路径信息,读取每个初始子应用的入口文件;
执行预置正则表达式,在每个所述入口文件中提取每个初始子应用的内部依赖信息;
通过预置模块加载工具,异步加载所述依赖信息中的依赖文件,所述依赖文件为每个所述初始子应用对应的依赖文件。
可选的,在本发明第一方面的第二种实现方式中,所述对每个所述初始子应用创建对应的沙箱环境,并在每个所述初始子应用对应的沙箱环境中记录对应的全局对象,包括:
在每个所述初始子应用中注入沙箱环境,得到每个所述初始子应用对应的沙箱环境;
通过所述沙箱环境,分别对主应用的全局对象和每个所述初始子应用的全局对象进行拦截,所述主应用的全局对象为所述主应用绑定的全局对象,所述初始子应用的全局对象为所述初始子应用绑定的全局对象;
分别将所述主应用的全局对象和每个所述初始子应用的全局对象记录到每个所述初始子应用对应的状态池中,得到每个所述初始子应用对应的状态池,所述状态池为每个所述初始子应用对应的沙箱环境的状态池。
可选的,在本发明第一方面的第三种实现方式中,所述在所述主应用中挂载每个所述初始子应用,并对所述主应用进行页面路由监听,得到页面路由监听结果,包括:
在所述主应用中创建生命周期函数,并在所述生命周期函数中注入每个所述初始子应用;
通过预设的路由状态事件监听所述主应用的页面路由变化,得到页面路由监听结果,所述页面路由监听结果包括页面更新前的路径信息和页面更新后的路径信息。
可选的,在本发明第一方面的第四种实现方式中,所述根据所述页面路由监听结果,加载所述主应用和目标子应用,并根据所述沙箱环境,更改所述全局对象的状态,包括:
根据所述页面路由监听结果中的路径信息,获取页面更新前运行的历史子应用和页面更新后运行的目标子应用;
通过所述历史子应用对应的状态池,卸载所述历史子应用对应的沙箱环境,并通过所述目标子应用对应的状态池,激活所述目标子应用对应的沙箱环境;
根据所述沙箱环境,加载所述主应用和所述目标子应用,所述目标子应用为与所述页面路由监听结果匹配的任意一个初始子应用。
可选的,在本发明第一方面的第五种实现方式中,所述通过所述历史子应用对应的状态池,卸载所述历史子应用对应的沙箱环境,并通过所述目标子应用对应的状态池,激活所述目标子应用对应的沙箱环境,包括:
通过所述历史子应用对应的状态池,还原所述历史子应用运行期间修改的主应用对应的全局对象,并删除所述历史子应用运行期间新增的全局对象;
通过所述目标子应用对应的状态池,新增所述目标子应用对应的全局对象到所述目标子应用对应的沙箱环境中,以激活所述目标子应用对应的沙箱环境。
可选的,在本发明第一方面的第六种实现方式中,在所述根据所述页面路由监听结果,加载所述主应用和目标子应用,并根据所述沙箱环境,更改所述全局对象的状态,所述目标子应用为与所述主应用匹配的任意一个初始子应用之前,在所述在所述主应用中挂载每个所述初始子应用,并对所述主应用进行页面路由监听,得到页面路由监听结果之后,所述前端应用嵌套方法还包括:
读取主应用的头文件标签,得到所述头文件标签内的全局依赖信息;
执行预置正则表达式,在所述全局依赖信息中提取所述历史子应用对应的内部依赖信息;
在所述全局依赖信息中移除所述历史子应用对应的内部依赖信息,所述全局依赖信息包括样式依赖信息和脚本依赖信息。
本发明第二方面提供了一种前端应用嵌套装置,包括:
获取模块,用于初始化主应用的配置资源,并在所述配置资源中获取应用配置信息,所述应用配置信息包括至少一个初始子应用的路径信息;
预加载模块,用于根据所述应用配置信息中每个所述初始子应用的路径信息,预加载每个初始子应用,每个所述初始子应用为预先在主应用中注册的子应用;
创建模块,用于对每个所述初始子应用创建对应的沙箱环境,并在每个所述初始子应用对应的沙箱环境中记录对应的全局对象;
挂载模块,用于在所述主应用中挂载每个所述初始子应用,并对所述主应用进行页面路由监听,得到页面路由监听结果;
加载模块,用于根据所述页面路由监听结果,加载所述主应用和目标子应用,并根据所述沙箱环境,更改所述全局对象的状态,所述目标子应用为与所述主应用匹配的任意一个初始子应用。
可选的,在本发明第二方面的第一种实现方式中,所述预加载模块具体用于:
根据所述应用配置信息中每个所述初始子应用的路径信息,读取每个初始子应用的入口文件;
执行预置正则表达式,在每个所述入口文件中提取每个初始子应用的内部依赖信息;
通过预置模块加载工具,异步加载所述依赖信息中的依赖文件,所述依赖文件为每个所述初始子应用对应的依赖文件。
可选的,在本发明第二方面的第二种实现方式中,所述创建模块具体用于:
在每个所述初始子应用中注入沙箱环境,得到每个所述初始子应用对应的沙箱环境;
通过所述沙箱环境,分别对主应用的全局对象和每个所述初始子应用的全局对象进行拦截,所述主应用的全局对象为所述主应用绑定的全局对象,所述初始子应用的全局对象为所述初始子应用绑定的全局对象;
分别将所述主应用的全局对象和每个所述初始子应用的全局对象记录到每个所述初始子应用对应的状态池中,得到每个所述初始子应用对应的状态池,所述状态池为每个所述初始子应用对应的沙箱环境的状态池。
可选的,在本发明第二方面的第三种实现方式中,所述挂载模块具体用于:
在所述主应用中创建生命周期函数,并在所述生命周期函数中注入每个所述初始子应用;
通过预设的路由状态事件监听所述主应用的页面路由变化,得到页面路由监听结果,所述页面路由监听结果包括页面更新前的路径信息和页面更新后的路径信息。
可选的,在本发明第二方面的第四种实现方式中,所述加载模块包括:
应用获取单元,用于根据所述页面路由监听结果中的路径信息,获取页面更新前运行的历史子应用和页面更新后运行的目标子应用;
状态更新单元,用于通过所述历史子应用对应的状态池,卸载所述历史子应用对应的沙箱环境,并通过所述目标子应用对应的状态池,激活所述目标子应用对应的沙箱环境;
应用加载单元,用于根据所述沙箱环境,加载所述主应用和所述目标子应用,所述目标子应用为与所述页面路由监听结果匹配的任意一个初始子应用。
可选的,在本发明第二方面的第五种实现方式中,所述状态更新单元具体用于:
通过所述历史子应用对应的状态池,还原所述历史子应用运行期间修改的主应用对应的全局对象,并删除所述历史子应用运行期间新增的全局对象;
通过所述目标子应用对应的状态池,新增所述目标子应用对应的全局对象到所述目标子应用对应的沙箱环境中,以激活所述目标子应用对应的沙箱环境。
可选的,在本发明第二方面的第六种实现方式中,所述前端应用嵌套装置还包括:
读取模块,用于读取主应用的头文件标签,得到所述头文件标签内的全局依赖信息;
提取模块,用于执行预置正则表达式,在所述全局依赖信息中提取所述历史子应用对应的内部依赖信息;
移除模块,用于在所述全局依赖信息中移除所述历史子应用对应的内部依赖信息,所述全局依赖信息包括样式依赖信息和脚本依赖信息。
本发明第三方面提供了一种前端应用嵌套设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述前端应用嵌套设备执行上述的前端应用嵌套方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的前端应用嵌套方法。
本发明提供的技术方案中,初始化主应用的配置资源,并在所述配置资源中获取应用配置信息,所述应用配置信息包括至少一个初始子应用的路径信息;根据所述应用配置信息中每个所述初始子应用的路径信息,预加载每个初始子应用,每个所述初始子应用为预先在主应用中注册的子应用;对每个所述初始子应用创建对应的沙箱环境,并在每个所述初始子应用对应的沙箱环境中记录对应的全局对象;在所述主应用中挂载每个所述初始子应用,并对所述主应用进行页面路由监听,得到页面路由监听结果;根据所述页面路由监听结果,加载所述主应用和目标子应用,并根据所述沙箱环境,更改所述全局对象的状态,所述目标子应用为与所述主应用匹配的任意一个初始子应用。本发明实施例中,终端通过主应用的配置资源,获取预先在主应用中注册的至少一个初始子应用,终端再对每个初始子应用创建对应的沙箱环境,将每个初始子应用和主应用对应的全局对象记录到沙箱环境中,并对主应用进行页面路由监听,从而确定需要加载的目标子应用。能够使终端应用之间的全局对象状态隔离,提高了终端应用嵌套的可维护性。
附图说明
图1为本发明实施例中前端应用嵌套方法的一个实施例示意图;
图2为本发明实施例中前端应用嵌套方法的另一个实施例示意图;
图3为本发明实施例中前端应用嵌套装置的一个实施例示意图;
图4为本发明实施例中前端应用嵌套装置的另一个实施例示意图;
图5为本发明实施例中前端应用嵌套设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种前端应用嵌套方法、装置、设备及存储介质,通过对每个子应用创建对应的沙箱环境,进行前端应用之间的全局对象状态隔离和更高,从而实现前端应用的嵌套,用于提高前端应用嵌套的可维护性。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中前端应用嵌套方法的一个实施例包括:
101、初始化主应用的配置资源,并在配置资源中获取应用配置信息,应用配置信息包括至少一个初始子应用的路径信息;
可以理解的是,本发明的执行主体可以为前端应用嵌套装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
本实施例中,随着互联网技术的发展,前端技术也越来越趋向于模块化和集成化,前端应用之间的独立性也越来越强,特别是近些年提出的微前端架构,微前端架构中的各个应用之间不要求技术栈统一,可以在子应用中采用各种与主应用不同的技术框架,不必跟主应用保持一致,而且子应用可以独立部署和为维护,将子应用嵌入主应用时,只需对主应用的基座进行同步更新即可,基座中包括:模块加载器、消息总线和底层路由,另外,子应用本身也可以独立运行。可见,微前端架构为前端应用之间的嵌套提供了框架基础,提高前端开发的效率。优选的,本发明采用的是乾坤微前端框架。
本实施例中,终端通过初始化主应用的配置资源,获取需嵌套在主应用中的至少一个初始子应用的配置消息,其中,应用配置信息中包括至少一个初始子应用的名称和路径信息,路径信息中包括:每个初始子应用的访问根路径和每个初始子应用的访问路径,名称、访问根路径以及访问路径为一一对应关系,一个初始子应用对应一个名称、一个访问根路径和一个访问路径,每个初始子应用之间的访问根路径可以相同,但不同初始子应用之间的访问路径不同,访问路径可以理解为是初始子应用的入口。
102、根据应用配置信息中每个初始子应用的路径信息,预加载每个初始子应用,每个初始子应用为预先在主应用中注册的子应用;
本实施例中,为了提高每个初始子应用的加载速度,降低页面阻塞概率,终端通过预先加载每个初始子应用的资源文件,达到预加载每个初始子应用的目的,从而提高每个初始子应用的加载速度。每个初始子应用的预加载方式可以是终端根据应用配置信息中的路径信息,终端通过每个初始子应用的入口路径访问每个初始子应用,终端再将每个初始子应用的依赖文件存入浏览器缓存中,终端在加载对应的初始子应用时,直接从浏览器缓存中读取依赖文件,从而提高每个初始子应用的加载速度,其中,依赖文件包括每个初始子应用对应的样式文件、脚本文件等。
103、对每个初始子应用创建对应的沙箱环境,并在每个初始子应用对应的沙箱环境中记录对应的全局对象;
本实施例中,沙箱环境即sandbox,它能够让运行在沙箱环境内的程序处在一个隔离的环境中,不对外界的其它程序造成影响,通过创建类似沙盒的独立作业环境,在沙箱环境内部运行的程序不会对硬盘产生永久性的影响,例如,浏览器中的每个标签都是一个沙箱环境,网页的渲染进程被沙箱环境隔离,网页代码必须通过进程间通信通道IPC才能与浏览器内核进程通信,通信过程会进行安全检查,沙箱环境的设计目的是为了让不可信的代码运行在一定的环境中,从而限制这些代码访问隔离区之外的资源。
本实施例中,全局对象包括全局函数、全局变量、全局常量以及浏览器操作对象(window对象),这些全局对象正是导致js环境污染的原因,因此,终端通过每个初始子应用对应的沙箱环境分别记录各个初始子应用的全局对象,以对各个初始子应用的全局对象进行隔离处理,能够降低代码污染发生的概率,使微前端框架更加健壮。
104、在主应用中挂载每个初始子应用,并对主应用进行页面路由监听,得到页面路由监听结果;
本实施例中,终端在主应用挂载每个初始子应用的同时,还能将主应用提供的函数注入到挂载程序中,例如主应用和初始子应用A进行通信的状态交互函数onglobalstatechange,初始子应用A声明状态交互函数并对主应用的数据进行监听,当主应用触发状态交互函数时,初始子应用A监听到主应用的数据发生变动,那么初始子应用A则通过状态设置函数setglobalstate进行数据的同步更新,从而使主应用和初始子应用A之间能够进行通信且数据保持同步。
105、根据页面路由监听结果,加载主应用和目标子应用,并根据沙箱环境,更改全局对象的状态,目标子应用为与主应用匹配的任意一个初始子应用。
本实施例中,终端可以通过路由监控函数popstate进行页面路由监听,当活动历史记录条目更改时,将触发popstate事件,popstate函数的状态属性state包含历史条目的状态对象副本,能够记录页面路由更新前的路径信息,和页面路由更新后的路径信息,终端根据页面路由更新后的路径信息,加载主应用,并匹配目标子应用,使得相互嵌套的终端应用能够相互独立,并为后续全局对象的状态变更提供了技术支持。
本发明实施例中,终端通过主应用的配置资源,获取预先在主应用中注册的至少一个初始子应用,终端再对每个初始子应用创建对应的沙箱环境,将每个初始子应用和主应用对应的全局对象记录到沙箱环境中,并对主应用进行页面路由监听,从而确定需要加载的目标子应用。能够使终端应用之间的全局对象状态隔离,提高了终端应用嵌套的可维护性。
请参阅图2,本发明实施例中前端应用嵌套方法的另一个实施例包括:
201、初始化主应用的配置资源,并在配置资源中获取应用配置信息,应用配置信息包括至少一个初始子应用的路径信息;
该步骤201的执行过程与步骤101的执行过程相似,具体此处不再赘述。
202、根据应用配置信息中每个初始子应用的路径信息,读取每个初始子应用的入口文件;
本实施例中,终端在预加载每个初始子应用之前,需要确定哪些依赖文件是需要加载的,而通过读取每个初始子应用的入口文件,即能确定需要加载的依赖文件,入口文件可以是脚本语言js文件(如app.js),也可以是超文本标记语言html文件(如index.html),而入口文件的确定,则可以通过应用配置信息中的每个初始子应用的路径信息,也就是每个初始子应用的入口路径来确定,例如,一个初始子应用的入口为“abc/x”,那么入口文件就可能为app.js,若一个初始子应用的入口为“abc/index.html”,那么入口文件就可能为index.html。
203、执行预置正则表达式,在每个入口文件中提取每个初始子应用的内部依赖信息;
本实施例中,终端读取到入口文件之后,终端通过执行预置正则表达式来提取初始子应用的依赖信息,正则表达式是对字符串操作的一种逻辑公式,通常被用来检索、替换符合某个模式的文本,而预置正则表达式则是预置了内部依赖信息检索的模式,通过检索入口文件中的后缀符号或者超文本标记语言标签,即能提取入口文件中的内部依赖信息,其中后缀符号包括js、css,超文本标记语言标签包括<link>、</link>、<style>、</style>、<head>、</head>等能够引入依赖文件的标签。
204、通过预置模块加载工具,异步加载内部依赖信息中的依赖文件,依赖文件为每个初始子应用对应的依赖文件;
本实施例中,终端通过模块加载工具systemjs,可以异步加载内部依赖信息中的依赖文件,systemjs是一个通用的模块加载工具,它能在浏览器或者nodejs上异步加载模块。终端还可以通过预置模块加载工具webpack,异步加载样式文件、脚本文件和静态资源文件,其中静态资源文件包括图片、图标和字体等。
205、对每个初始子应用创建对应的沙箱环境,并在每个初始子应用对应的沙箱环境中记录对应的全局对象;
具体的,终端在每个初始子应用中注入沙箱环境,得到每个初始子应用对应的沙箱环境;终端通过沙箱环境,分别对主应用的全局对象和每个初始子应用的全局对象进行拦截,主应用的全局对象为主应用绑定的全局对象,初始子应用的全局对象为初始子应用绑定的全局对象;终端分别将主应用的全局对象和每个初始子应用的全局对象记录到每个初始子应用对应的状态池中,得到每个初始子应用对应的状态池,状态池为每个初始子应用对应的沙箱环境的状态池。
本实施例中,沙箱环境主要包括三种:继承沙箱(也就是,legacy sandbox)、代理沙箱(也就是,proxy sandbox)以及快照沙箱(也就是,snapshot sandbox),本实施例优选创建继承沙箱进行全局对象隔离,适用于主应用为单实例模式的情况,而当初始子应用为多实例模式时,终端采用的是代理沙箱,若浏览器不支持继承沙箱,则终端会自动将沙箱环境降级为快照沙箱。一般一个主应用同一时刻只会加载一个初始子应用,这种情况称为单实例模式,而当一个主应用中聚合了多个业务域时,这种情况则称为多实例模式。
本实施例中,继承沙箱本质上还是操作window对象,但是它会存在三个状态池,分别用于终端每个初始子应用卸载时还原主应用的状态,和每个初始子应用加载时还原每个初始子应用的状态。首先是终端创建每个初始子应用对应的沙箱环境,然后终端对主应用和每个初始子应用的全局对象进行拦截,也就是拦截传递到主应用和每个初始子应用中自执行函数的window对象,终端将拦截到的window对象存到对应初始子应用的状态池中,便于后续对不同初始子应用的全局对象进行激活或卸载。
本实施例中,代理沙箱支持多实例的应用场景,与继承沙箱不同的是,代理沙箱不会直接操作window对象,并且为了避免每个初始子应用操作或者修改主应用上诸如window、document、location这些重要的全局对象,终端会遍历这些全局对象,并拷贝这些全局对象到每个初始子应用的window副本(也就是,fakewindow)上,终端通过fakewindow激活/卸载沙箱环境,无需操作状态池更新/还原主应用和每个初始子应用的状态,从而完全隔离主应用和每个初始子应用的全局对象,是较为完备的沙箱环境。
本实施例中,当浏览器不支持继承沙箱的情况下,终端将沙箱环境自动降级为快照沙箱,快照沙箱的原理就是在每个初始子应用激活或卸载时,分别通过快照的形式记录/还原全局对象的状态,从而实现沙箱隔离。
206、在主应用中挂载每个初始子应用,并对主应用进行页面路由监听,得到页面路由监听结果;
具体的,终端在主应用中创建生命周期函数,并在生命周期函数中注入每个初始子应用;终端通过预设的路由状态事件监听主应用的页面路由变化,得到页面路由监听结果,页面路由监听结果包括页面更新前的路径信息和页面更新后的路径信息。
本实施例中,终端在主应用的入口文件中添加生命周期挂载函数mount,能够将每个初始子应用挂载到主应用中,主应用每次启动都会调用mount函数,终端通过将每个初始子应用挂载到mount函数中,能够在主应用启动时触发对应页面的初始子应用的渲染程序,从而对对应页面的初始子应用进行加载,而为了使每个初始子应用及时更新,在生命周期更新函数update中也同时添加每个初始子应用的渲染程序,使对应页面的初始子应用能够在主应用更新时同时更新,二者保持数据同步。
207、根据页面路由监听结果,加载主应用和目标子应用,并根据沙箱环境,更改全局对象的状态,目标子应用为与主应用匹配的任意一个初始子应用。
具体的,终端根据页面路由监听结果中的路径信息,获取页面更新前运行的历史子应用和页面更新后运行的目标子应用;终端通过历史子应用对应的状态池,卸载历史子应用对应的沙箱环境,并通过目标子应用对应的状态池,激活目标子应用对应的沙箱环境;终端根据沙箱环境,加载主应用和目标子应用,目标子应用为与页面路由监听结果匹配的任意一个初始子应用。
本实施例中,终端根据页面更新前的路径信息,匹配到运行在页面更新前的主应用对应的历史子应用,根据页面更新后的路径信息,匹配到运行在页面更新后的主应用对应的目标子应用。由于历史子应用中可能存在会对主应用运行环境造成环境污染的污染对象,因此,终端将历史子应用的全局对象进行删除,也就是卸载inactive存放着历史子应用的全局对象的沙箱环境,并激活active目标子应用的沙箱环境。
进一步的,终端通过历史子应用对应的状态池,卸载历史子应用对应的沙箱环境,并通过目标子应用对应的状态池,激活目标子应用对应的沙箱环境,包括:终端通过历史子应用对应的状态池,还原历史子应用运行期间修改的主应用对应的全局对象,并删除历史子应用运行期间新增的全局对象;终端通过目标子应用对应的状态池,新增目标子应用对应的全局对象到目标子应用对应的沙箱环境中,以激活目标子应用对应的沙箱环境。
本实施例中,终端通过遍历状态池中的全局变量来进行沙箱环境的激活/卸载,具体的,在遍历过程中若发现运行后的主应用的全局对象与运行前不同,那么,则说明主应用的全局对象在运行期间被篡改,通过状态池的历史记录,还原被篡改的全局对象,使主应用的全局对象与运行前保持一致,从而解决变量污染的问题。而终端在遍历过程中若发现运行前所没有的全局对象,那么,则说明终端在历史子应用运行期间新增了全局对象,为了避免新增的全局对象进一步地造成变量污染,终端需删除新增的全局对象,从而解决变量污染问题。对于目标子应用,终端则将目标子应用的全局对象新增到目标子应用的沙箱环境中,并激活目标子应用的沙箱环境即可。
进一步的,在根据页面路由监听结果,加载主应用和目标子应用,并根据沙箱环境,更改全局对象的状态,目标子应用为与主应用匹配的任意一个初始子应用之前,在主应用中挂载每个初始子应用,并对主应用进行页面路由监听,得到页面路由监听结果之后,前端应用嵌套方法还包括:终端读取主应用的头文件标签,得到头文件标签内的全局依赖信息;终端执行预置正则表达式,在全局依赖信息中提取历史子应用对应的内部依赖信息;终端在全局依赖信息中移除历史子应用对应的内部依赖信息,全局依赖信息包括样式依赖信息和脚本依赖信息。
本实施例中,除了全局变量污染,主应用和目标子应用之间还可能存在样式(css)污染,因此,终端在加载目标子应用之前,还能对样式污染问题进行解决。头文件标签<head>是引入css文件的标签,终端在目标子应用加载之前,终端通过新增节点函数appendChild将目标子应用需要加载的js/css文件插入到<head>标签中,并记录插入到<head>标签中的文件,当页面路由发生变化时,终端删除历史子应用所插入的js/css文件,从而解决样式或脚本污染的问题。这样还能减少终端应用所要加载的文件数量,使页面的加载速度提升。
本发明实施例中,为了提高目标子应用的加载速度,终端通过读取每个初始子应用的入口文件,来获得每个初始子应用的内部依赖信息,终端再通过预置模块加载工具,异步加载这些每个初始子应用的依赖文件,从而预加载每个初始子应用,进而提高嵌套子应用的加载速度。
上面对本发明实施例中前端应用嵌套方法进行了描述,下面对本发明实施例中前端应用嵌套装置进行描述,请参阅图3,本发明实施例中前端应用嵌套装置一个实施例包括:
获取模块301,用于初始化主应用的配置资源,并在所述配置资源中获取应用配置信息,所述应用配置信息包括至少一个初始子应用的路径信息;
预加载模块302,用于根据所述应用配置信息中每个所述初始子应用的路径信息,预加载每个初始子应用,每个所述初始子应用为预先在主应用中注册的子应用;
创建模块303,用于对每个所述初始子应用创建对应的沙箱环境,并在每个所述初始子应用对应的沙箱环境中记录对应的全局对象;
挂载模块304,用于在所述主应用中挂载每个所述初始子应用,并对所述主应用进行页面路由监听,得到页面路由监听结果;
加载模块305,用于根据所述页面路由监听结果,加载所述主应用和目标子应用,并根据所述沙箱环境,更改所述全局对象的状态,所述目标子应用为与所述主应用匹配的任意一个初始子应用。
本发明实施例中,终端通过主应用的配置资源,获取预先在主应用中注册的至少一个初始子应用,终端再对每个初始子应用创建对应的沙箱环境,将每个初始子应用和主应用对应的全局对象记录到沙箱环境中,并对主应用进行页面路由监听,从而确定需要加载的目标子应用。能够使终端应用之间的全局对象状态隔离,提高了终端应用嵌套的可维护性。
请参阅图4,本发明实施例中前端应用嵌套装置的另一个实施例包括:
获取模块301,用于初始化主应用的配置资源,并在所述配置资源中获取应用配置信息,所述应用配置信息包括至少一个初始子应用的路径信息;
预加载模块302,用于根据所述应用配置信息中每个所述初始子应用的路径信息,预加载每个初始子应用,每个所述初始子应用为预先在主应用中注册的子应用;
创建模块303,用于对每个所述初始子应用创建对应的沙箱环境,并在每个所述初始子应用对应的沙箱环境中记录对应的全局对象;
挂载模块304,用于在所述主应用中挂载每个所述初始子应用,并对所述主应用进行页面路由监听,得到页面路由监听结果;
加载模块305,用于根据所述页面路由监听结果,加载所述主应用和目标子应用,并根据所述沙箱环境,更改所述全局对象的状态,所述目标子应用为与所述主应用匹配的任意一个初始子应用。
可选的,所述预加载模块302具体用于:
根据所述应用配置信息中每个所述初始子应用的路径信息,读取每个初始子应用的入口文件;
执行预置正则表达式,在每个所述入口文件中提取每个初始子应用的内部依赖信息;
通过预置模块加载工具,异步加载所述依赖信息中的依赖文件,所述依赖文件为每个所述初始子应用对应的依赖文件。
可选的,所述创建模块303具体用于:
在每个所述初始子应用中注入沙箱环境,得到每个所述初始子应用对应的沙箱环境;
通过所述沙箱环境,分别对主应用的全局对象和每个所述初始子应用的全局对象进行拦截,所述主应用的全局对象为所述主应用绑定的全局对象,所述初始子应用的全局对象为所述初始子应用绑定的全局对象;
分别将所述主应用的全局对象和每个所述初始子应用的全局对象记录到每个所述初始子应用对应的状态池中,得到每个所述初始子应用对应的状态池,所述状态池为每个所述初始子应用对应的沙箱环境的状态池。
可选的,所述挂载模块304具体用于:
在所述主应用中创建生命周期函数,并在所述生命周期函数中注入每个所述初始子应用;
通过预设的路由状态事件监听所述主应用的页面路由变化,得到页面路由监听结果,所述页面路由监听结果包括页面更新前的路径信息和页面更新后的路径信息。
可选的,所述加载模块305包括:
应用获取单元3051,用于根据所述页面路由监听结果中的路径信息,获取页面更新前运行的历史子应用和页面更新后运行的目标子应用;
状态更新单元3052,用于通过所述历史子应用对应的状态池,卸载所述历史子应用对应的沙箱环境,并通过所述目标子应用对应的状态池,激活所述目标子应用对应的沙箱环境;
应用加载单元3053,用于根据所述沙箱环境,加载所述主应用和所述目标子应用,所述目标子应用为与所述页面路由监听结果匹配的任意一个初始子应用。
可选的,所述状态更新单元3052具体用于:
通过所述历史子应用对应的状态池,还原所述历史子应用运行期间修改的主应用对应的全局对象,并删除所述历史子应用运行期间新增的全局对象;
通过所述目标子应用对应的状态池,新增所述目标子应用对应的全局对象到所述目标子应用对应的沙箱环境中,以激活所述目标子应用对应的沙箱环境。
可选的,所述前端应用嵌套装置还包括:
读取模块306,用于读取主应用的头文件标签,得到所述头文件标签内的全局依赖信息;
提取模块307,用于执行预置正则表达式,在所述全局依赖信息中提取所述历史子应用对应的内部依赖信息;
移除模块308,用于在所述全局依赖信息中移除所述历史子应用对应的内部依赖信息,所述全局依赖信息包括样式依赖信息和脚本依赖信息。
本发明实施例中,为了提高目标子应用的加载速度,终端通过读取每个初始子应用的入口文件,来获得每个初始子应用的内部依赖信息,终端再通过预置模块加载工具,异步加载这些每个初始子应用的依赖文件,从而预加载每个初始子应用,进而提高嵌套子应用的加载速度。
上面图3和图4从模块化功能实体的角度对本发明实施例中的前端应用嵌套装置进行详细描述,下面从硬件处理的角度对本发明实施例中前端应用嵌套设备进行详细描述。
图5是本发明实施例提供的一种前端应用嵌套设备的结构示意图,该前端应用嵌套设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对前端应用嵌套设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在前端应用嵌套设备500上执行存储介质530中的一系列指令操作。
前端应用嵌套设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的前端应用嵌套设备结构并不构成对前端应用嵌套设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种前端应用嵌套设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述前端应用嵌套方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述前端应用嵌套方法的步骤。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种前端应用嵌套方法,其特征在于,所述前端应用嵌套方法包括:
初始化主应用的配置资源,并在所述配置资源中获取应用配置信息,所述应用配置信息包括至少一个初始子应用的路径信息;
根据所述应用配置信息中每个所述初始子应用的路径信息,预加载每个初始子应用,每个所述初始子应用为预先在主应用中注册的子应用;
对每个所述初始子应用创建对应的沙箱环境,并在每个所述初始子应用对应的沙箱环境中记录对应的全局对象;
在所述主应用中挂载每个所述初始子应用,并对所述主应用进行页面路由监听,得到页面路由监听结果;
根据所述页面路由监听结果,加载所述主应用和目标子应用,并根据所述沙箱环境,更改所述全局对象的状态,所述目标子应用为与所述主应用匹配的任意一个初始子应用;
所述在所述主应用中挂载每个所述初始子应用,并对所述主应用进行页面路由监听,得到页面路由监听结果,包括:
将所述主应用提供的状态交互函数注入到每个所述初始子应用,以使每个所述初始子应用声明状态交互函数并对主应用的数据进行监听;
当所述主应用触发状态交互函数时,每个所述初始子应用通过状态设置函数进行数据的同步更新。
2.根据权利要求1所述的前端应用嵌套方法,其特征在于,所述根据所述应用配置信息中每个所述初始子应用的路径信息,预加载每个初始子应用,包括:
根据所述应用配置信息中每个所述初始子应用的路径信息,读取每个初始子应用的入口文件;
执行预置正则表达式,在每个所述入口文件中提取每个初始子应用的内部依赖信息;
通过预置模块加载工具,异步加载所述依赖信息中的依赖文件,所述依赖文件为每个所述初始子应用对应的依赖文件。
3.根据权利要求1所述的前端应用嵌套方法,其特征在于,所述对每个所述初始子应用创建对应的沙箱环境,并在每个所述初始子应用对应的沙箱环境中记录对应的全局对象,包括:
在每个所述初始子应用中注入沙箱环境,得到每个所述初始子应用对应的沙箱环境;
通过所述沙箱环境,分别对主应用的全局对象和每个所述初始子应用的全局对象进行拦截,所述主应用的全局对象为所述主应用绑定的全局对象,所述初始子应用的全局对象为所述初始子应用绑定的全局对象;
分别将所述主应用的全局对象和每个所述初始子应用的全局对象记录到每个所述初始子应用对应的状态池中,得到每个所述初始子应用对应的状态池,所述状态池为每个所述初始子应用对应的沙箱环境的状态池。
4.根据权利要求1所述的前端应用嵌套方法,其特征在于,所述在所述主应用中挂载每个所述初始子应用,并对所述主应用进行页面路由监听,得到页面路由监听结果,包括:
在所述主应用中创建生命周期函数,并在所述生命周期函数中注入每个所述初始子应用;
通过预设的路由状态事件监听所述主应用的页面路由变化,得到页面路由监听结果,所述页面路由监听结果包括页面更新前的路径信息和页面更新后的路径信息。
5.根据权利要求3所述的前端应用嵌套方法,其特征在于,所述根据所述页面路由监听结果,加载所述主应用和目标子应用,并根据所述沙箱环境,更改所述全局对象的状态,包括:
根据所述页面路由监听结果中的路径信息,获取页面更新前运行的历史子应用和页面更新后运行的目标子应用;
通过所述历史子应用对应的状态池,卸载所述历史子应用对应的沙箱环境,并通过所述目标子应用对应的状态池,激活所述目标子应用对应的沙箱环境;
根据所述沙箱环境,加载所述主应用和所述目标子应用,所述目标子应用为与所述页面路由监听结果匹配的任意一个初始子应用。
6.根据权利要求5所述的前端应用嵌套方法,其特征在于,所述通过所述历史子应用对应的状态池,卸载所述历史子应用对应的沙箱环境,并通过所述目标子应用对应的状态池,激活所述目标子应用对应的沙箱环境,包括:
通过所述历史子应用对应的状态池,还原所述历史子应用运行期间修改的主应用对应的全局对象,并删除所述历史子应用运行期间新增的全局对象;
通过所述目标子应用对应的状态池,新增所述目标子应用对应的全局对象到所述目标子应用对应的沙箱环境中,以激活所述目标子应用对应的沙箱环境。
7.根据权利要求5所述的前端应用嵌套方法,其特征在于,在所述根据所述页面路由监听结果,加载所述主应用和目标子应用,并根据所述沙箱环境,更改所述全局对象的状态,所述目标子应用为与所述主应用匹配的任意一个初始子应用之前,在所述在所述主应用中挂载每个所述初始子应用,并对所述主应用进行页面路由监听,得到页面路由监听结果之后,所述前端应用嵌套方法还包括:
读取主应用的头文件标签,得到所述头文件标签内的全局依赖信息;
执行预置正则表达式,在所述全局依赖信息中提取所述历史子应用对应的内部依赖信息;
在所述全局依赖信息中移除所述历史子应用对应的内部依赖信息,所述全局依赖信息包括样式依赖信息和脚本依赖信息。
8.一种前端应用嵌套装置,其特征在于,所述前端应用嵌套装置执行如权利要求1-7中任意一项所述的前端应用嵌套方法,所述前端应用嵌套装置包括:
获取模块,用于初始化主应用的配置资源,并在所述配置资源中获取应用配置信息,所述应用配置信息包括至少一个初始子应用的路径信息;
预加载模块,用于根据所述应用配置信息中每个所述初始子应用的路径信息,预加载每个初始子应用,每个所述初始子应用为预先在主应用中注册的子应用;
创建模块,用于对每个所述初始子应用创建对应的沙箱环境,并在每个所述初始子应用对应的沙箱环境中记录对应的全局对象;
挂载模块,用于在所述主应用中挂载每个所述初始子应用,并对所述主应用进行页面路由监听,得到页面路由监听结果;
加载模块,用于根据所述页面路由监听结果,加载所述主应用和目标子应用,并根据所述沙箱环境,更改所述全局对象的状态,所述目标子应用为与所述主应用匹配的任意一个初始子应用。
9.一种前端应用嵌套设备,其特征在于,所述前端应用嵌套设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述前端应用嵌套设备执行如权利要求1-7中任意一项所述的前端应用嵌套方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-7中任一项所述前端应用嵌套方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110692038.XA CN113419817B (zh) | 2021-06-22 | 2021-06-22 | 前端应用嵌套方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110692038.XA CN113419817B (zh) | 2021-06-22 | 2021-06-22 | 前端应用嵌套方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113419817A CN113419817A (zh) | 2021-09-21 |
CN113419817B true CN113419817B (zh) | 2024-04-05 |
Family
ID=77716053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110692038.XA Active CN113419817B (zh) | 2021-06-22 | 2021-06-22 | 前端应用嵌套方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419817B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113691455B (zh) * | 2021-10-27 | 2022-02-15 | 深圳市信润富联数字科技有限公司 | 路由调度方法、装置、设备及可读存储介质 |
CN114238074A (zh) * | 2021-11-18 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 一种子应用的调试方法、装置、设备及存储介质 |
CN114205418A (zh) * | 2021-12-09 | 2022-03-18 | 中国建设银行股份有限公司 | 一种业务零影响的应用停止方法及装置 |
CN114401320A (zh) * | 2021-12-14 | 2022-04-26 | 杭州趣链科技有限公司 | 子应用访问方法、系统、区块链平台、网关及存储介质 |
CN114625439A (zh) * | 2022-03-10 | 2022-06-14 | 腾讯音乐娱乐科技(深圳)有限公司 | 基于微前端架构的子应用运行方法、电子设备及存储介质 |
CN114661375A (zh) * | 2022-03-24 | 2022-06-24 | 阿里云计算有限公司 | 应用集成方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016218541A (ja) * | 2015-05-15 | 2016-12-22 | 富士ゼロックス株式会社 | 情報処理装置およびプログラム |
CN112000353A (zh) * | 2020-08-18 | 2020-11-27 | 北京三快在线科技有限公司 | 应用运行方法、装置及存储介质 |
CN112416415A (zh) * | 2020-09-18 | 2021-02-26 | 山东英信计算机技术有限公司 | 一种前端微服务实现方法及相关组件 |
-
2021
- 2021-06-22 CN CN202110692038.XA patent/CN113419817B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016218541A (ja) * | 2015-05-15 | 2016-12-22 | 富士ゼロックス株式会社 | 情報処理装置およびプログラム |
CN112000353A (zh) * | 2020-08-18 | 2020-11-27 | 北京三快在线科技有限公司 | 应用运行方法、装置及存储介质 |
CN112416415A (zh) * | 2020-09-18 | 2021-02-26 | 山东英信计算机技术有限公司 | 一种前端微服务实现方法及相关组件 |
Also Published As
Publication number | Publication date |
---|---|
CN113419817A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113419817B (zh) | 前端应用嵌套方法、装置、设备及存储介质 | |
US8739280B2 (en) | Context-sensitive taint analysis | |
US7757129B2 (en) | Generalized trace and log facility for first error data collection | |
US20240078116A1 (en) | Just-in-Time Containers | |
US20030167355A1 (en) | Application program interface for network software platform | |
US20070067418A1 (en) | Object oriented web application framework | |
EP1310868A2 (en) | Method and apparatus for a platform independent plug-in | |
US20130086687A1 (en) | Context-sensitive application security | |
CN110442327B (zh) | 一种应用程序构建方法、装置、服务器 | |
KR20230054474A (ko) | 마이크로프론트엔드 시스템, 서브애플리케이션 로딩 방법, 전자 디바이스, 컴퓨터 프로그램 제품 및 컴퓨터로 판독 가능한 저장 매체 | |
CN104049986A (zh) | 插件加载方法及装置 | |
US8583709B2 (en) | Detailed inventory discovery on dormant systems | |
US20110191431A1 (en) | Method and system for updating display screens | |
Kanso et al. | Serverless: beyond the cloud | |
US11785039B2 (en) | Scanning web applications for security vulnerabilities | |
CN110574033B (zh) | 减少多媒体内容传递的远程过程调用 | |
CN108845864B (zh) | 一种基于spring框架的JVM垃圾回收方法和装置 | |
CN114281653A (zh) | 应用程序的监控方法、装置及计算设备 | |
US9841982B2 (en) | Locating import class files at alternate locations than specified in classpath information | |
CN113868502A (zh) | 一种页面爬虫方法、装置、电子设备及可读存储介质 | |
US8006242B2 (en) | Identification of software configuration data | |
CN115080114B (zh) | 应用程序的移植处理方法、装置和介质 | |
CN113392311A (zh) | 字段搜索方法、字段搜索装置、电子设备及存储介质 | |
CN113553065A (zh) | 一种代码文件发布方法及装置 | |
CN116932126A (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 |