计算;推算;计数设备的制造及其应用技术1.本发明涉及计算机技术领域,尤其涉及一种组件加载方法、托管方法、系统、电子设备及存储介质。背景技术:2.移动端软件(application,app)也称为应用,而混合模式移动应用(hybrid app)是web应用和原生应用的结合体,在一些app中,存在很多影响用户体验的问题,例如,相关技术中,hybrid应用在使用的过程中,随着业务的增加,静态资源大小也会逐步增加,造成应用的加载速度缓慢,从而影响了用户的使用体验。技术实现要素:3.本发明实施例的主要目的在于提出一种组件加载方法、托管方法、系统、电子设备及存储介质,能够提高应用的加载速度,提升用户体验。4.为实现上述目的,本发明实施例的第一方面提出了一种组件加载方法,所述方法包括:5.获取应用页面当前的页面场景信息;6.获取预设的策略场景信息,对比所述页面场景信息与所述策略场景信息,根据对比结果确定组件更新策略,所述组件更新策略包括第一更新策略或者第二更新策略,所述第一更新策略和所述第二更新策略用于判断是否需要从本地资源读取数据;7.获取与所述页面场景信息对应的组件请求信息;8.若所述组件更新策略为所述第一更新策略,根据所述组件请求信息从应用所在的所述本地资源中读取第一组件数据、或从预设的托管系统中下载第二组件数据;9.若所述组件更新策略为所述第二更新策略,根据所述组件请求信息从所述托管系统中下载所述第二组件数据。10.在一些实施例中,所述策略场景信息包括异步更新场景和同步更新场景,所述对比所述页面场景信息与所述策略场景信息,根据对比结果确定组件更新策略,包括:11.将所述页面场景信息与所述策略场景信息进行匹配;12.若所述页面场景信息与所述异步更新场景相匹配,将所述组件更新策略确定为用于异步更新的所述第一更新策略;13.若所述页面场景信息与所述同步更新场景相匹配,将所述组件更新策略确定为用于同步更新的所述第二更新策略。14.在一些实施例中,所述若所述页面场景信息与所述异步更新场景相匹配,将所述组件更新策略确定为用于异步更新的所述第一更新策略,包括:15.若所述页面场景信息表征当前应用的场景为启动场景,确定所述页面场景信息与所述异步更新场景相匹配,将所述组件更新策略确定为用于异步更新的所述第一更新策略。16.在一些实施例中,所述根据所述组件请求信息从应用所在的所述本地资源中读取第一组件数据、或从预设的托管系统中下载第二组件数据,包括:17.根据所述组件请求信息读取应用所在的所述本地资源,并判断所述本地资源中是否存在所述第一组件数据;18.若所述本地资源中存在所述第一组件数据,解析所述组件请求信息并得到资源相对路径,根据所述资源相对路径从所述本地资源中读取所述第一组件数据;19.若所述本地资源中不存在所述第一组件数据,根据所述组件请求信息从预设的所述托管系统中下载所述第二组件数据。20.在一些实施例中,所述根据所述资源相对路径从所述本地资源中读取所述第一组件数据之后,所述方法还包括:21.获取所述第一组件数据的第一版本信息;22.根据所述组件请求信息获取所述托管系统中对应的所述第二组件数据的第二版本信息;23.若所述第二版本信息对应的版本发布时间晚于所述第一版本信息对应的版本发布时间,保持应用当前继续使用所述第一组件数据,并从所述托管系统中下载所述第二组件数据到所述本地资源中,以使得将所述第二组件数据在预定时间后替代所述第一组件数据。24.在一些实施例中,所述根据所述组件请求信息从所述托管系统中下载所述第二组件数据之后,所述方法还包括:25.获取预设的组件数据淘汰规则,将所述本地资源中满足所述组件数据淘汰规则的组件数据确定为目标组件数据;26.删除所述本地资源中的所述目标组件数据,得到更新后的所述本地资源。27.为实现上述目的,本发明实施例的第二方面提出了一种组件托管方法,所述方法包括:28.获取根据静态资源构建形成的制品包;29.根据应用不同的页面场景确定对应的组件信息,并将所述制品包添加到对应的所述组件信息中形成第二组件数据;30.将所述第二组件数据保存至托管系统中,以使得终端在组件更新策略为第二更新策略后,根据组件请求信息从所述托管系统中下载对应的所述第二组件数据,所述组件请求信息为所述终端根据页面场景信息得到,所述页面场景信息为所述终端根据当前应用页面获取得到,所述组件更新策略为所述终端在获取预设的策略场景信息后、对比所述页面场景信息与所述策略场景信息得到。31.为实现上述目的,本发明实施例的第三方面提出了一种组件加载系统,所述系统包括:32.数据获取模块,用于获取应用页面当前的页面场景信息;33.策略判断模块,用于获取预设的策略场景信息,对比所述页面场景信息与所述策略场景信息,根据对比结果确定组件更新策略,所述组件更新策略包括第一更新策略或者第二更新策略,所述第一更新策略和所述第二更新策略用于判断是否需要从本地资源读取数据;34.数据获取模块,还用于获取与所述页面场景信息对应的组件请求信息;35.组件获取模块,若所述组件更新策略为所述第一更新策略,所述组件获取模块用于根据所述组件请求信息从应用所在的所述本地资源中读取第一组件数据、或从预设的托管系统中下载第二组件数据;36.若所述组件更新策略为所述第二更新策略,所述组件获取模块还用于根据所述组件请求信息从所述托管系统中下载所述第二组件数据。37.为实现上述目的,本发明实施例的第四方面提出了一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现上述第一方面所述的组件加载方法或第二方面所述的组件托管方法。38.为实现上述目的,本发明实施例的第五方面提出了一种存储介质,所述存储介质为计算机可读存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面所述的组件加载方法或第二方面所述的组件托管方法。39.本发明实施例提出的组件加载方法、托管方法、系统、电子设备及存储介质,组件加载方法可以应用在终端上,或应用在组件加载系统上,组件托管方法可应用在托管系统中,本发明实施例可以在终端上获取应用页面当前的页面场景信息,并获取预设的策略场景信息,对比页面场景信息与策略场景信息,得到对比结果,并根据对比结果确定组件更新策略,组件更新策略包括第一更新策略或者第二更新策略,第一更新策略和第二更新策略用于判断是否需要从本地资源读取数据,同时获取与页面场景信息对应的组件请求信息,若组件更新策略为第一更新策略,表明当前页面场景需要考虑从本地资源获取数据,因此根据组件请求信息从应用所在的本地资源中读取第一组件数据、或从预设的托管系统中下载第二组件数据,以提高当前页面场景下组件的加载速度,若组件更新策略为第二更新策略,表明当前页面场景不需要太快的组件加载速度,则根据组件请求信息从托管系统中下载第二组件数据,本发明实施例能够区分应用的页面场景,根据不同的页面进行不同的组件获取方式,能够提高应用的加载速度,提升用户体验。40.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明41.附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。42.图1是本发明实施例提供的组件加载方法的流程示意图;43.图2是图1中的步骤s102的流程示意图;44.图3是图1中的步骤s104的流程示意图;45.图4是图3中的步骤s302之后的流程示意图;46.图5是图1中的步骤s105之后的流程示意图;47.图6是本发明实施例提供的组件托管方法的流程示意图;48.图7是本发明实施例提供的组件加载系统的结构示意图;49.图8是本发明实施例提供的电子设备的硬件结构示意图。具体实施方式50.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。51.需要说明的是,虽然在系统示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于系统中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。52.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。53.首先,对本发明实施例中涉及的若干名词进行解析:54.组件(component)是对数据和方法的简单封装,简而言之,组件就是软件中的对象,组件可以有自己的属性和方法,组件并不是很复杂,组件通常有三种类型,包括复合组件(composite controls)、扩展组件(extended controls)和自定义组件(custom controls)。55.常见的第三方组件还包括用户界面组件,用于开发构建用户界面(ui)的组件,帮助完成软件开发中视窗、文本框、按钮、下拉式菜单等界面元素的开发;图表组件,用于开发图表的组件,帮助软件实现数据可视化,实现开发时较难独立完成的复杂图表;报表组件,用于开发报表的组件,在软件中实现报表的浏览查看、设计、编辑、打印等功能;表格组件,专门用于开发表格(cell)的组件,主要实现网格中数据处理和操作的功能。56.hybrid应用是web应用和原生应用的结合体,相较于传统的原生应用能更快的进行需求迭代,相较于传统web应用能无缝的使用原生系统能力,和大部分web应用一样,hybrid应用也涉及到各种静态资源的加载,随着业务的增加,静态资源大小也会逐步增加,例如这样会造成首屏渲染的时间过长,严重影响用户体验,尤其是在弱网环境,基于此我们需要引入资源缓存的方案。57.基于此,本发明实施例提供了一种组件加载方法、托管方法、系统、电子设备及存储介质,旨在提高应用的加载速度,提升用户体验。58.本发明实施例提供的组件加载方法、托管方法、系统、电子设备及存储介质,具体通过如下实施例进行说明,首先描述本发明实施例中的组件加载方法。59.本发明实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。60.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。61.本发明实施例提供的组件加载方法,涉及计算机技术领域。本发明实施例提供的组件加载方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现组件加载方法的应用等,但并不局限于以上形式。62.本发明实施例可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。63.本发明实施例以组件加载方法应用在如手机、平板电脑等终端为例子,但并不表示为对本发明实施例的限制。64.本发明实施例中的组件加载方法或组件托管方法所用的组件,包括上述实施例中提到的任意一个组件,可根据不同应用的场景具有相对应的组件,在此不做具体限制。65.图1是本发明实施例提供的组件加载方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤s101至步骤s105。66.步骤s101,获取应用页面当前的页面场景信息。67.需要说明的是,终端可以获取用户的操作指令,在打开某个应用的时候,获取应用页面当前的页面场景信息,页面场景信息可以表征应用所处的不同页面的情况,例如,本发明实施例的页面场景信息可以包括应用启动场景、应用前后台切换场景和组件功能被加载时的场景等,本发明实施例为了提高应用的组件加载速度,根据不同页面的情况来进行区分,以实现在不同页面场景下都能得到一个更好的组件加载方案。68.步骤s102,获取预设的策略场景信息,对比页面场景信息与策略场景信息,根据对比结果确定组件更新策略,组件更新策略包括第一更新策略或者第二更新策略,第一更新策略和第二更新策略用于判断是否需要从本地资源读取数据。69.需要说明的是,本发明实施例为了提高应用的组件加载速度,根据不同页面的情况来进行区分,因此在对页面场景信息表征的页面场景进行判断时,本发明实施例通过获取预设的策略场景信息来进行比对,策略场景信息是预先设置好的一个对比策略,用于针对不用的页面场景,存储为对应的更新策略的情况,对比页面场景信息与策略场景信息,根据对比结果确定组件更新策略,组件更新策略包括第一更新策略或者第二更新策略,第一更新策略和第二更新策略用于判断是否需要从本地资源读取数据,例如,当页面场景信息表征为某一页面时,在策略场景信息中,该页面对应的组件加载策略为第一更新策略或第二更新策略中的一个,则确定了当前页面的组件更新策略,以得到其是否需要考虑从本地资源获取数据。70.步骤s103,获取与页面场景信息对应的组件请求信息。71.需要说明的是,应用在每个页面场景下,均有对应的组件加载需求,为了得到这个需求,应用会发送本发明实施例中描述的组件请求信息,向终端或者云端来获取组件的数据资源,而页面场景信息对应不同的页面场景,因此不同页面场景信息对应不用的组件请求信息,例如,应用启动场景需要加载应用的启动画面等信息,则启动场景下的组件请求信息用于请求得到启动画面,而组件功能被加载时的场景则需要请求加载对应的组件。72.在一实施例中,当应用被打开时,终端加载应用的页面,解析页面标识,例如可以取页面的url根目录,需要提前定好规范,指的是从url中提取组件标识的规则,一般是取url的路径名称(pathname),从而得到对应的组件请求信息,可以判断当前页面的场景。73.步骤s104,若组件更新策略为第一更新策略,根据组件请求信息从应用所在的本地资源中读取第一组件数据、或从预设的托管系统中下载第二组件数据。74.需要说明的是,当组件更新策略确定为第一更新策略,则判断当前场景下,要考虑从本地资源读取第一组件数据,此时可以根据根据组件请求信息从应用所在的本地资源中读取第一组件数据、或从预设的托管系统中下载第二组件数据,可以理解的是,本发明可以设定一个判断逻辑,来判断当前条件下是直接从本地资源读取第一组件数据,还是从预设的托管系统中下载第二组件数据,例如,该条件可以是判断本地资源有无存储第一组件数据。75.具体的,第一组件数据和第二组件数据均为对应组件请求信息的组件数据,均属于当前页面场景中用到的组件,可以理解的是,第一组件数据和第二组件数据只是所处的位置不一样,其中,第一组件数据位于本地资源中,第二组件数据位于托管系统中,第一、第二只是为了区分技术特征,此外,第一组件数据和第二组件数据的版本信息也可能不相同,可以对应为组件不同版本发布时间的组件数据。76.本发明实施例中的托管系统可以是设置在云端或服务器上的托管系统,托管系统预先加载并存储了多个组件数据,即为第二组件数据,托管系统可以响应于终端的请求,即响应组件请求信息,发送第二组件数据到终端中以供应用加载使用。77.步骤s105,若组件更新策略为第二更新策略,根据组件请求信息从托管系统中下载第二组件数据。78.需要说明的是,当组件更新策略确定为第二更新策略,则判断当前场景下,不需要考虑从本地资源读取第一组件数据,此时可以根据组件请求信息从托管系统中直接下载第二组件数据,可以理解的是,符合第二更新策略下的页面场景,是对加载速度要求不高的场景,在这些场景中,以获得更新、更好的组件资源为主,因此不需要优先考虑加载速度,而优先考虑加载的组件的质量,而本发明实施例中满足第一更新策略下的场景,则会关系到用户直接的使用体验,因此需要优先考虑加载速度,从本地资源中获取第一组件数据的速度快与从预设的托管系统中下载第二组件数据,这是本发明实施例基于对提升用户体验的角度所设置的。79.相比于现有技术中的方案,现有技术的一种解决方案是通过webview组件的协议缓存,通过原生系统提供的能力,只需简单的配置即可完成组件加载,但是当应用被杀死后,缓存将被清空,下次加载过程中速度就会变慢,而通过本地代理服务的组件加载方案,则会出现web页面所有的请求都要经过本地的代理服务,维护的成本高,而且比较耗cpu资源,因此,本发明实施例能够区分应用的页面场景,根据不同的页面进行不同的组件获取方式,能够提高应用的加载速度,提升用户体验。80.参照图2所示,在一些实施例中,策略场景信息包括异步更新场景和同步更新场景,方法中的步骤s102可以包括但不限于包括步骤s201至步骤s203。81.步骤s201,将页面场景信息与策略场景信息进行匹配。82.步骤s202,若页面场景信息与异步更新场景相匹配,将组件更新策略确定为用于异步更新的第一更新策略。83.步骤s203,若页面场景信息与同步更新场景相匹配,将组件更新策略确定为用于同步更新的第二更新策略。84.需要说明的是,本发明实施例中将组件加载更新的场景分为异步更新场景和同步更新场景,通过策略场景信息即可表征上述两种场景,在判断的过程中,终端将应用的页面场景信息与策略场景信息进行匹配,根据匹配结果确定是需要异步更新还是同步更新。85.具体的,若页面场景信息与异步更新场景相匹配,将组件更新策略确定为用于异步更新的第一更新策略,本发明实施例所提到的异步更新场景,是指当前应用的场景下,用于实现组件加载的异步更新,即当前页面下组件的加载,优先考虑从本地资源获取组件数据,组件的版本可以存在差异,优先考虑组件的加载速度,而不是选择加载存储在托管系统中的更高组件版本的组件数据;同样的,若页面场景信息与同步更新场景相匹配,将组件更新策略确定为用于同步更新的第二更新策略,是指当前应用的场景下,用于实现组件加载的同步更新,即当前页面下组件的加载,优先考虑从托管系统获取组件数据,组件的版本为最新的版本,并与托管系统上的最新版本同步,此时优先考虑组件的版本,选用更新、更高质量的组件数据,而不是选择存储在本地资源中可能出现的较低版本的组件数据。86.在一实施例中,上述步骤s202还包括但不限于以下步骤:87.若页面场景信息表征当前应用的场景为启动场景,确定页面场景信息与异步更新场景相匹配,将组件更新策略确定为用于异步更新的第一更新策略。88.需要说明的是,若页面场景信息表征当前应用的场景为启动场景,则页面场景信息与异步更新场景相匹配,将组件更新策略确定为用于异步更新的第一更新策略,本发明实施例所提到的启动场景是应用的启动场景,指的是应用出现开屏界面,此时还没进入应用首页,可以在这个阶段同步组件资源,保证在进入首页时获取的组件资源就是最新的,在启动场景下,用于实现组件加载的异步更新,即当前页面下组件的加载,优先考虑从本地资源获取组件数据,优先考虑组件的加载速度,而不是选择加载存储在托管系统中的更高组件版本的组件数据。89.此外要说明的是,本发明实施例中的异步更新场景,为优先考虑组件加载速度的场景,包括但不限于应用的启动场景和组件功能被加载时的场景等,而同步更新场景为优先考虑组件版本的场景,包括但不限于应用前后台切换场景,且可以理解的是,对于本发明实施例中的异步更新场景,终端可以在缓存中存储历史下载到的组件数据作为本地数据,可以下载异步更新场景下的全部或部分组件数据,可根据实际需要设置,且在一实施例中,终端存储有应用的启动场景下的组件数据在本地资源中,以便在应用打开时能保证最快的组件加载速度,提高用户体验。90.参照图3所示,在一些实施例中,方法中的步骤s104可以包括但不限于包括步骤s301至步骤s303。91.步骤s301,根据组件请求信息读取应用所在的本地资源,并判断本地资源中是否存在第一组件数据。92.步骤s302,若本地资源中存在第一组件数据,解析组件请求信息并得到资源相对路径,根据资源相对路径从本地资源中读取第一组件数据。93.步骤s303,若本地资源中不存在第一组件数据,根据组件请求信息从预设的托管系统中下载第二组件数据。94.需要说明的是,本发明实施例中通过对终端的本地资源中是否存在第一组件数据进行判断,来确定终端是从本地资源获取第一组件数据还是从预设的托管系统中下载第二组件数据,具体的,终端根据组件请求信息读取应用所在的本地资源,并判断本地资源中是否存在第一组件数据,若本地资源中存在第一组件数据,则开启请求拦截,拦截组件请求信息,解析拦截到的组件请求信息并得到资源相对路径,根据资源相对路径从本地资源中读取第一组件数据,反之,若本地资源中不存在第一组件数据,则放过组件请求信息,不对组件请求信息进行拦截,根据组件请求信息从预设的托管系统中下载第二组件数据。95.需要说明的是,本地资源的完整路径等于应用沙盒路径加上组件数据资源的相对路径,因为应用沙盒路径是固定的,所以只需要解析组件的相对路径即可。96.可以理解的是,页面可以发出多个组件请求信息,并需要对应加载多个组件的数据,本发明实施例中的终端对页面产生的多个组件请求信息进行判断,拦截本地资源中有数据的组件请求信息,放过那些需要从预设的托管系统中下载数据的组件请求信息,实现对请求的过滤,过滤不必要的请求拦截,反之,则放过请求,不影响页面整体加载流程,从而提高了页面的加载速度。97.在一实施例中,终端解析拦截到的组件请求信息,提供资源相对路径,通过相对路径拉取本地资源,找到则将第一组件数据的数据包装后回给应用浏览器,这里是指返回给hybrid应用的浏览器吗,即对于应用的webview原生组件。98.此外,在一实施例中,组件通过链接的方式引用了外部的组件数据资源,这种资源是不会包含在制品包中的,所以为了兼容这种情况选择放行这类组件请求信息,完成页面加载流程。99.在一实施例中,终端通过nsurlprotocol来实现请求拦截的,具体的,基于ios系统的终端是基于nsurlprotocol来实现请求拦截,而基于安卓的终端是通过webview组件自带的请求拦截器拦截处理请求,在此不做具体限制。100.参照图4所示,在一些实施例中,方法中的步骤s302之后,还可以包括但不限于包括步骤s401至步骤s403。101.步骤s401,获取第一组件数据的第一版本信息。102.步骤s402,根据组件请求信息获取托管系统中对应的第二组件数据的第二版本信息。103.步骤s403,若第二版本信息对应的版本发布时间晚于第一版本信息对应的版本发布时间,保持应用当前继续使用第一组件数据,并从托管系统中下载第二组件数据到本地资源中,以使得将第二组件数据在预定时间后替代第一组件数据。104.需要说明的是,本发明中的组件数据均有对应的版本信息,在托管系统中构建存储好组件数据时,就已经存储号对应的组件版本信息,以便组件进行更新替换,具体的,终端在加载页面所需要的组件时,会获取当前本地资源中已有的第一组件数据的的第一版本信息,用于同时跟托管系统中的第二组件数据的版本信息进行对比,终端根据组件请求信息获取托管系统中对应的第二组件数据的第二版本信息,对比第一版本信息和第二版本信息,若第二版本信息对应的版本发布时间晚于第一版本信息对应的版本发布时间,保持应用当前继续使用第一组件数据,并从托管系统中下载第二组件数据到本地资源中,以使得将第二组件数据在预定时间后替代第一组件数据,本发明对比版本信息的发布时间,实际上是对比版本号,看第一组件数据和第二组件数据的版本号哪个更新,当托管系统中的组件数据是更新的版本时,通过下载第二组件数据到本地资源中,以便后续替换成为旧的第一组件数据成为新的组件数据。105.需要说明的是,本发明实施例中所描述的预定时间,可以是预先设置好的一个固定时间,也可以是某个场景下的时间,在一实施例中,预定时间为应用关闭或下一次启动时的时间。106.参照图5所示,在一些实施例中,方法中的步骤s105之后,还可以包括但不限于包括步骤s501至步骤s502。107.步骤s501,获取预设的组件数据淘汰规则,将本地资源中满足组件数据淘汰规则的组件数据确定为目标组件数据。108.步骤s502,删除本地资源中的目标组件数据,得到更新后的本地资源。109.需要说明的是,本发明实施例针对本地组件资源引入组件数据淘汰规则,通过获取预设的组件数据淘汰规则,将本地资源中满足组件数据淘汰规则的组件数据确定为目标组件数据,并删除目标组件数据,得到更新后的本地资源,在一实施例中,组件数据淘汰规则为最近最少使用(least recently used,lru)淘汰算法,用来优化本地存储空间,本发明实施例的触发场景为应用启动和切入后台时,触发对本地资源的优化更新。110.可以理解的是,因为第一组件数据资源都是存在应用本地的,当组件过多时内存占用会越来越大,本发明通过lru淘汰算法来解决这个问题,lru为最近最少使用算法,即当要对数据进行淘汰时,先将最近最久未使用的数据淘汰(亦说最近最久未使用算法),是一种缓存淘汰算法。111.本发明实施例中的组件加载方法,是一种离线缓存的系统规范,规范了组件发布流程、拓展了组件使用的业务场景,不局限于自身系统,大大简化了组件更新流程,减小了维护成本,对web应用无任何侵入,优化请求拦截逻辑,不截断组件的加载流程,最后引入lru淘汰算法优化存储空间,提高了hybrid应用加载速度,以及应用的离线加载,利用系统的请求协议拦截系统,来实现资源离线加载。112.本发明实施例中还提供了一种组件托管方法,具体如下:113.本发明实施例提供的组件托管方法,涉及计算机技术领域。本发明实施例提供的组件托管方法可应用于托管系统中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,托管系统可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现组件托管方法的应用等,但并不局限于以上形式。114.本发明实施例可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。115.图6是本发明实施例提供的组件托管方法的一个可选的流程图,图6中的方法可以包括但不限于包括步骤s601至步骤s603。116.步骤s601,获取根据静态资源构建形成的制品包。117.步骤s602,根据应用不同的页面场景确定对应的组件信息,并将制品包添加到对应的组件信息中形成第二组件数据。118.步骤s603,将第二组件数据保存至托管系统中,以使得终端在组件更新策略为第二更新策略后,根据组件请求信息从托管系统中下载对应的第二组件数据,组件请求信息为终端根据页面场景信息得到,页面场景信息为终端根据当前应用页面获取得到,组件更新策略为终端在获取预设的策略场景信息后、对比页面场景信息与策略场景信息得到。119.需要说明的是,本发明实施例中的组件托管方法,可应用在托管系统中,拖管系统与上述实施例中的终端可以建立无线通信连接,web组件开发完毕后准备发布到线上环境,在自动化流水线或者本地打出制品包,自动化流水线指的是持续集成部署平台,比如jenkins、gitlab ci等,本发明实施例中以使用的是jenkins搭建的平台为例子,其次,进入组件托管系统中,选择对应的应用和场景,场景可支持多选,场景的存在主要是优化组件更新机制,提升用户体验,例如应用首页需要在应用启动完成后就进行加载,所以将首页组件配置到应用启动的场景进行更新,本发明实施例中选择待发布的组件,如果没有发布历史,则新建组件,填写组件唯一标识,组件标识是应用用来查询组件的版本信息的,每个组件有自己唯一标识,一般定义为组件的ng目录名,新建组件版本,上传制品包,上传完成后进行发布,可以搭配自动化流水线一键上传至系统,形成第二组件数据,此外,在发布生产时,还可以加入审核流程,来确保生产稳定。120.需要说明的是,本发明实施例中的制品包可以同步的部署到远端服务器,保证组件在没有缓存系统生效时也能正常被访问,这一步骤属于本发明实施例中设置的兜底策略,当缓存系统不可用时也可能正常访问线上服务器资源,以便终端获取托管系统中的数据。121.可以理解的是,本发明实施例中的应用为hybrid应用,本质是原生壳嵌入h5,那每个功能组件都代表一个完整的h5功能,h5本质上是由js、css、html、图片等静态资源组成,而本发明实施例中的h5项目使用的vue.js前端框架,并不是原生的项目,所以需要进行构建打包,最终生成包含js、css、html、图片等静态资源组成的制品包。122.可以理解的是,上述实施例中描述的新建组件,新建的是需要进行离线托管的组件,用来维护组件的版本迭代,只有在这里创建过的组件,才能在应用端的终端中根据组件标识或组件请求信息查询到它对应得版本信息,制品包对应组件某个版本的静态资源文件,一个版本对应一个。123.本发明实施例中所描述的组件托管系统在此不做具体描述。124.参照图7所示,本发明实施例中还提供了一种组件加载系统,该系统可执行上述实施例中提高的组件加载方法,在一实施例中,组件加载系统为上述实施例所描述的终端,组件加载系统包括:125.数据获取模块701,用于获取应用页面当前的页面场景信息。126.策略判断模块702,用于获取预设的策略场景信息,对比页面场景信息与策略场景信息,根据对比结果确定组件更新策略,组件更新策略包括第一更新策略或者第二更新策略,第一更新策略和第二更新策略用于判断是否需要从本地资源读取数据。127.数据获取模块703,还用于获取与页面场景信息对应的组件请求信息。128.组件获取模块704,若组件更新策略为第一更新策略,组件获取模块用于根据组件请求信息从应用所在的本地资源中读取第一组件数据、或从预设的托管系统中下载第二组件数据。129.若组件更新策略为第二更新策略,组件获取模块还用于根据组件请求信息从托管系统中下载第二组件数据。130.本发明实施例可以在组件加载系统上获取应用页面当前的页面场景信息,并获取预设的策略场景信息,对比页面场景信息与策略场景信息,得到对比结果,并根据对比结果确定组件更新策略,组件更新策略包括第一更新策略或者第二更新策略,第一更新策略和第二更新策略用于判断是否需要从本地资源读取数据,同时获取与页面场景信息对应的组件请求信息,若组件更新策略为第一更新策略,表明当前页面场景需要考虑从本地资源获取数据,因此根据组件请求信息从应用所在的本地资源中读取第一组件数据、或从预设的托管系统中下载第二组件数据,以提高当前页面场景下组件的加载速度,若组件更新策略为第二更新策略,表明当前页面场景不需要太快的组件加载速度,则根据组件请求信息从托管系统中下载第二组件数据,本发明实施例能够区分应用的页面场景,根据不同的页面进行不同的组件获取方式,能够提高应用的加载速度,提升用户体验。131.该组件加载系统的具体实施方式与上述组件加载方法的具体实施例基本相同,在此不再赘述。132.本发明实施例还提供了一种电子设备,电子设备包括:存储器、处理器、存储在存储器上并可在处理器上运行的程序以及用于实现处理器和存储器之间的连接通信的数据总线,程序被处理器执行时实现上述组件加载方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。133.请参阅图8,图8示意了另一实施例的电子设备的硬件结构,电子设备包括:134.处理器801,可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本发明实施例所提供的技术方案;135.存储器802,可以采用只读存储器(readonlymemory,rom)、静态存储设备、动态存储设备或者随机存取存储器(randomaccessmemory,ram)等形式实现。存储器802可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器802中,并由处理器801来调用执行本发明实施例的组件加载方法;136.输入/输出接口803,用于实现信息输入及输出;137.通信接口804,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信;138.总线805,在设备的各个组件(例如处理器801、存储器802、输入/输出接口803和通信接口804)之间传输信息;139.其中处理器801、存储器802、输入/输出接口803和通信接口804通过总线805实现彼此之间在设备内部的通信连接。140.本发明实施例还提供了一种存储介质,存储介质为计算机可读存储介质,用于计算机可读存储,存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述组件加载方法。141.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。142.本发明实施例描述的实施例是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。143.本领域技术人员可以理解的是,图1-6中示出的技术方案并不构成对本发明实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。144.以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。145.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。146.本发明实施例的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。147.应当理解,在本发明实施例中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。148.在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。149.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。150.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。151.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。152.以上参照附图说明了本发明实施例的优选实施例,并非因此局限本发明实施例的权利范围。本领域技术人员不脱离本发明实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本发明实施例的权利范围之内。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
组件加载方法、托管方法、系统、电子设备及存储介质与流程
作者:admin
2022-07-30 20:20:48
839
关键词:
计算;推算;计数设备的制造及其应用技术
专利技术