小程序的页面渲染方法、装置、电子设备和存储介质与流程

文档序号:32517274发布日期:2022-12-13 16:47阅读:29来源:国知局
小程序的页面渲染方法、装置、电子设备和存储介质与流程

1.本公开涉及计算机技术领域,尤其涉及一种小程序的页面渲染方法、装置、电子设备、存储介质和计算机程序产品。


背景技术:

2.小程序是一种不需要下载安装即可使用的应用程序,用户通过扫描二维码、搜索等方式就可打开小程序。目前,小程序具有使用方便、占用空间小等优点,得到了广泛的应用,方便了人们日常生活,比如,用户可使用小程序点餐、购物等。然而,相关技术中,小程序占用的内存资源较多。


技术实现要素:

3.本公开提供了一种小程序的页面渲染方法、装置、电子设备、存储介质和计算机程序产品。
4.根据本公开的一方面,提供了一种小程序的页面渲染方法,小程序包括逻辑层和视图层,所述小程序的共享存储空间中部署有在所述逻辑层和所述视图层之间共享的资源,所述方法包括:所述逻辑层从所述共享存储空间中获取用于渲染页面的渲染代码;所述逻辑层执行所述渲染代码;所述逻辑层基于所述渲染代码,向所述视图层发送渲染指令;所述视图层响应于所述渲染指令,从所述共享存储空间中获取用于渲染页面的容器;所述视图层通过所述容器对n个目标页面进行渲染,其中,n为正整数。
5.根据本公开的另一方面,提供了一种小程序的页面渲染装置,小程序包括逻辑层和视图层,所述小程序的共享存储空间中部署有在所述逻辑层和所述视图层之间共享的资源,所述装置包括:第一获取模块,用于从所述共享存储空间中获取用于渲染页面的渲染代码;执行模块,用于执行所述渲染代码;发送模块,用于基于所述渲染代码,向所述视图层发送渲染指令;第二获取模块,用于响应于所述渲染指令,从所述共享存储空间中获取用于渲染页面的容器;渲染模块,用于通过所述容器对n个目标页面进行渲染,其中,n为正整数。
6.根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行小程序的页面渲染方法。
7.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行小程序的页面渲染方法。
8.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现小程序的页面渲染方法的步骤。
9.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
10.附图用于更好地理解本方案,不构成对本公开的限定。其中:
11.图1是根据本公开第一实施例的小程序的页面渲染方法的流程示意图;
12.图2是根据本公开第二实施例的小程序的页面渲染方法的流程示意图;
13.图3是根据本公开第三实施例的小程序的页面渲染方法的流程示意图;
14.图4是根据本公开第四实施例的小程序的页面渲染方法的流程示意图;
15.图5是根据本公开第五实施例的小程序的页面渲染方法的流程示意图;
16.图6是根据本公开第六实施例的小程序的页面渲染方法的示意图;
17.图7是根据本公开第七实施例的小程序的页面渲染方法中小程序的示意图;
18.图8是根据本公开第一实施例的小程序的页面渲染装置的框图;
19.图9是用来实现本公开实施例的小程序的页面渲染方法的电子设备的框图。
具体实施方式
20.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
21.小程序是一种不需要下载安装即可使用的应用程序,用户通过扫描二维码、搜索等方式就可打开小程序,具有使用方便、占用空间小、开发成本低等优点,得到了广泛的应用。目前,小程序大多采用双线程结构,逻辑层和视图层分离,运行在不同的线程。
22.小程序页面渲染通常包括webview(网页视图)渲染方式和naview(原生视图)渲染方式(可简称原生渲染方式)。目前,视图层在进行多个页面的渲染时,需要为每个页面创建一个容器,并基于自身的虚拟机为每个页面创建一个线程。
23.图1是根据本公开第一实施例的小程序的页面渲染方法的流程示意图。
24.如图1所示,本公开第一实施例的小程序的页面渲染方法,包括:
25.s101,逻辑层从共享存储空间中获取用于渲染页面的渲染代码。
26.本公开的实施例中,小程序包括逻辑层和视图层,小程序的共享存储空间中部署有在逻辑层和视图层之间共享的资源。应说明的是,小程序具有共享存储空间,共享存储空间中部署有在逻辑层和视图层之间共享的资源,即逻辑层和视图层之间可通过共享存储空间来共享资源。对共享存储空间的存储结构、存储位置、共享的资源均不做过多限定。比如,共享存储空间部署在逻辑层和/或视图层。
27.需要说明的是,逻辑层、视图层对共享存储空间均具有操作权限,其中,操作权限至少包括从共享存储空间中获取共享的资源。在一种实施方式中,操作权限还包括将共享的资源存储在共享存储空间中。
28.本公开的实施例中,共享存储空间中部署有用于渲染页面的渲染代码,即共享的资源包括渲染代码,逻辑层从共享存储空间中获取用于渲染页面的渲染代码。应说明的是,对渲染代码不做过多限定,比如,渲染代码包括用于渲染原生页面的原生渲染代码。
29.在一种实施方式中,共享存储空间中还部署有逻辑代码和开发者代码。
30.需要说明的是,对代码不做过多限定,比如,代码可采用c语言、c++、js
(javascript,解释型或即时编译型的编程语言)等编程语言进行编写。
31.s102,逻辑层执行渲染代码。
32.s103,逻辑层基于渲染代码,向视图层发送渲染指令。
33.可以理解的是,渲染代码中定义了发送渲染指令的相关内容,则逻辑层可基于渲染代码,向视图层发送渲染指令。由此,逻辑层可直接向视图层发送渲染指令,以驱动视图层进行页面渲染,相较于相关技术中逻辑层向视图层发送数据的通信方式,有助于减小逻辑层和视图层之间的通信次数和通信耗时,进而提高了小程序的页面渲染速度。
34.需要说明的是,对渲染指令不做过多限定,比如,渲染指令可为json(javascript object notation,js对象简谱)。
35.在一种实施方式中,逻辑层基于渲染代码,向视图层发送渲染指令,可包括逻辑层获取待渲染的n个目标页面的标识,基于渲染代码和n个目标页面的标识,生成渲染指令,并向视图层发送渲染指令。其中,n为正整数。应说明的是,对n不做过多限定,比如,n可为1、5等。
36.需要说明的是,目标页面的标识与目标页面一一对应,即一个目标页面具有唯一的标识。对目标页面的标识不做过多限定,比如,目标页面的标识包括但不限于目标页面的名称、目标页面的url(uniform resource locator,统一资源定位符)等。
37.在一种实施方式中,逻辑层可基于渲染代码和n个目标页面的标识,生成一条渲染指令。由此,一条渲染指令可对应至少一个目标页面的标识,有助于节省指令数量。
38.在一种实施方式中,渲染指令携带n个目标页面的标识。
39.s104,视图层响应于渲染指令,从共享存储空间中获取用于渲染页面的容器。
40.本公开的实施例中,共享存储空间中部署有用于渲染页面的容器,即共享的资源包括容器,视图层响应于渲染指令,从共享存储空间中获取用于渲染页面的容器。应说明的是,对容器不做过多限定,比如,容器可包括jscontext(js容器)。
41.在一种实施方式中,小程序采用单容器结构,即小程序仅部署一个容器,可在共享存储空间中部署一个容器。可以理解的是,该容器至少用于渲染页面。由此,该方法中仅需在共享存储空间中部署一个容器,逻辑层和视图层之间可通过共享存储空间来共享容器,大大减少了容器数量,有助于节省小程序占用的内存资源。
42.比如,电子设备上安装有小程序的宿主,小程序采用单容器结构,大大减少了容器数量,有助于节省小程序占用的宿主的内存资源,即节省小程序占用的电子设备的内存资源,有助于提高小程序的适用性,便于小程序扩展到车载终端、智能家电等电子设备上。应说明的是,对电子设备不做过多限定,比如,电子设备包括iot(internet of things,物联网)设备。
43.s105,视图层通过容器对n个目标页面进行渲染,其中,n为正整数。
44.比如,目标页面包括目标页面1至3,视图层从共享存储空间中获取用于渲染页面的容器a,视图层通过容器a对目标页面1进行渲染,并通过容器a对目标页面2进行渲染,并通过容器c对目标页面3进行渲染。
45.综上,根据本公开实施例的小程序的页面渲染方法,小程序的共享存储空间中部署有在逻辑层和视图层之间共享的资源,逻辑层从共享存储空间中获取用于渲染页面的渲染代码,逻辑层执行渲染代码,逻辑层基于渲染代码,向视图层发送渲染指令,视图层响应
于渲染指令,从共享存储空间中获取用于渲染页面的容器,视图层通过容器对n个目标页面进行渲染。由此,逻辑层和视图层之间可通过共享存储空间来共享资源,共享的资源至少包括渲染代码和容器,可通过一个容器对至少一个目标页面进行渲染,大大减少了容器数量,有助于节省小程序占用的内存资源,提高了小程序的适用性。
46.图2是根据本公开第二实施例的小程序的页面渲染方法的流程示意图。
47.如图2所示,本公开第二实施例的小程序的页面渲染方法,包括:
48.s201,逻辑层从共享存储空间中获取用于渲染页面的渲染代码。
49.s202,逻辑层执行渲染代码。
50.s203,逻辑层基于渲染代码,向视图层发送渲染指令。
51.s204,视图层响应于渲染指令,从共享存储空间中获取用于渲染页面的容器。
52.步骤s201-s204的相关内容可参见上述实施例,这里不再赘述。
53.s205,视图层从容器中获取第i个目标页面对应的渲染资源,其中,1≤i≤n,i为正整数。
54.需要说明的是,对渲染资源不做过多限定,比如,渲染资源包括但不限于js文件、css(cascading style sheets,层叠样式表)文件、字体、图片、页面属性值等。
55.本公开的实施例中,容器中存储有n个目标页面对应的渲染资源。可以理解的是,不同的目标页面可对应不同的渲染资源。比如,目标页面包括目标页面1至3,视图层从共享存储空间中获取用于渲染页面的容器a,容器a中存储有目标页面1对应的渲染资源,以及目标页面2对应的渲染资源,以及目标页面3对应的渲染资源。
56.在一种实施方式中,视图层从容器中获取第i个目标页面对应的渲染资源,包括视图层基于第i个目标页面的标识,从容器中获取第i个目标页面对应的渲染资源。比如,可在容器中建立目标页面的标识和渲染资源之间的映射关系或者映射表,视图层在获取到第i个目标页面的标识之后,查询上述映射关系或者映射表,将查询到的渲染资源确定为第i个目标页面对应的渲染资源。
57.在一种实施方式中,视图层从小程序的存储空间中获取n个目标页面对应的渲染资源,视图层将n个目标页面对应的渲染资源分别存储在容器中。应说明的是,小程序的存储空间中存储有n个目标页面对应的渲染资源。由此,该方法中可将至少一个目标页面对应的渲染资源分别存储在一个容器中,即可通过一个容器实现至少一个目标页面对应的渲染资源的存储,大大减少了容器数量,有助于节省小程序占用的内存资源。
58.在一种实施方式中,视图层将n个目标页面对应的渲染资源分别存储在容器中,包括视图层将第i个目标页面对应的渲染资源存储在容器的第i个存储空间。应说明的是,容器包括n个存储空间,n个存储空间与n个目标页面一一对应,第i个存储空间用于存储第i个目标页面对应的渲染资源。
59.比如,目标页面包括目标页面1至3,视图层从共享存储空间中获取用于渲染页面的容器a,视图层从小程序的存储空间中获取目标页面1至3对应的渲染资源,将目标页面1对应的渲染资源存储在容器a的第1个存储空间,将目标页面2对应的渲染资源存储在容器a的第2个存储空间,将目标页面3对应的渲染资源存储在容器a的第3个存储空间。
60.在一种实施方式中,视图层将n个目标页面对应的渲染资源分别存储在容器中之后,还包括视图层识别n个目标页面中的m个第一页面对应的渲染资源之间存在重合渲染资
源,其中,2≤m≤n,m为正整数,视图层保留容器中的任一第一页面对应的重合渲染资源。由此,该方法中可在m个第一页面对应的渲染资源之间存在重合渲染资源时,仅保留容器中的任一第一页面对应的重合渲染资源,即仅保留容器中的一份重合渲染资源,有助于节省渲染资源占用的容器的内存资源,进而节省小程序占用的内存资源。
61.可以理解的是,n个目标页面包括m个第一页面,m个第一页面为n个目标页面中的部分或者全部目标页面。重合渲染资源指的是m个第一页面对应的渲染资源之间的重合部分。视图层保留容器中的任一第一页面对应的重合渲染资源,包括视图层将容器中的除任一第一页面之外的其余第一页面对应的重合渲染资源删除。
62.比如,目标页面包括目标页面1至3,视图层从共享存储空间中获取用于渲染页面的容器a,视图层将目标页面1至3对应的渲染资源分别存储在容器a中,视图层识别目标页面1、2之间存在重合渲染资源,即可将目标页面1、2确定为第一页面。
63.在一些实施例中,视图层保留容器a中的目标页面1对应的重合渲染资源,并将容器a中的目标页面2对应的重合渲染资源删除。
64.在一些实施例中,视图层保留容器a中的目标页面2对应的重合渲染资源,并将容器a中的目标页面1对应的重合渲染资源删除。
65.在一种实施方式中,视图层将n个目标页面对应的渲染资源分别存储在容器中,包括视图层识别n个目标页面中的m个第一页面对应的渲染资源之间存在重合渲染资源,并识别每个第一页面对应的渲染资源中除重合渲染资源之外的差异渲染资源,其中,2≤m≤n,m为正整数,视图层将重合渲染资源和差异渲染资源分别存储在容器中。由此,该方法中可在m个第一页面对应的渲染资源之间存在重合渲染资源时,将一份重合渲染资源和m个第一页面对应的差异渲染资源存储在容器中,有助于节省渲染资源占用的容器的内存资源,进而节省小程序占用的内存资源。
66.在一种实施方式中,视图层将重合渲染资源和差异渲染资源分别存储在容器中,包括视图层将重合渲染资源存储在容器的重合存储空间,将第j个第一页面对应的差异渲染资源存储在容器的第j个差异存储空间。其中,1≤j≤m,j为正整数。应说明的是,容器包括重合存储空间和m个差异存储空间,重合存储空间用于存储重合渲染资源,m个差异存储空间与m个第一页面一一对应,第j个差异存储空间用于存储第j个第一页面对应的差异渲染资源。
67.比如,目标页面包括目标页面1至3,视图层从共享存储空间中获取用于渲染页面的容器a,视图层识别目标页面1、2之间存在重合渲染资源,即可将目标页面1、2确定为第一页面,视图层识别目标页面1、2对应的渲染资源中除重合渲染资源之外的差异渲染资源。
68.视图层将重合渲染资源存储在容器a的重合存储空间,将目标页面1对应的差异渲染资源存储在容器a的第1个差异存储空间,将目标页面2对应的差异渲染资源存储在容器a的第2个差异存储空间。
69.s206,视图层通过容器和第i个目标页面对应的渲染资源,对第i个目标页面进行渲染。
70.比如,目标页面包括目标页面1至3,视图层从共享存储空间中获取用于渲染页面的容器a,视图层从容器a中获取目标页面1至3对应的渲染资源,通过容器a和目标页面1对应的渲染资源,对目标页面1进行渲染,并通过容器a和目标页面2对应的渲染资源,对目标
页面2进行渲染,并通过容器a和目标页面3对应的渲染资源,对目标页面3进行渲染。
71.综上,根据本公开实施例的小程序的页面渲染方法,视图层从容器中获取第i个目标页面对应的渲染资源,视图层通过容器和第i个目标页面对应的渲染资源,对第i个目标页面进行渲染。由此,该方法中可从容器中获取至少一个目标页面对应的渲染资源,并通过容器和每个目标页面各自对应的渲染资源,对每个目标页面进行渲染。
72.图3是根据本公开第三实施例的小程序的页面渲染方法的流程示意图。
73.如图3所示,本公开第三实施例的小程序的页面渲染方法,包括:
74.s301,视图层获取目标页面上的设定事件。
75.需要说明的是,对设定事件不做过多限定,比如,设定事件包括但不限于点击事件、滑动事件、滚动事件、刷新事件、文本框事件等。
76.在一种实施方式中,视图层获取目标页面上的设定事件,包括视图层对目标页面进行事件监听。
77.需要说明的是,对监听方式不做过多限定,比如,视图层部署有监听代码,视图层对目标页面进行事件监听,包括视图层执行监听代码,由监听代码对目标页面进行事件监听。应说明的是,对监听代码不做过多限定。
78.在一种实施方式中,视图层部署有渲染引擎,视图层获取目标页面上的设定事件,包括视图层通过渲染引擎获取目标页面上的设定事件。应说明的是,对渲染引擎不做过多限定,比如,渲染引擎可包括原生渲染引擎。
79.s302,视图层将设定事件发送至逻辑层。
80.在一种实施方式中,视图层部署有渲染引擎,视图层将设定事件发送至逻辑层,包括视图层通过渲染引擎将设定事件发送至逻辑层。由此,该方法中渲染引擎可直接向逻辑层发送设定事件,相较于相关技术中渲染引擎向视图层发送设定事件,再由视图层向逻辑层发送设定事件,有助于减小逻辑层和视图层之间的通信次数和通信耗时,进而提高了小程序的页面渲染速度。
81.s303,逻辑层从共享存储空间中获取设定事件的处理代码。
82.s304,逻辑层执行处理代码,并基于处理代码,对设定事件进行处理。
83.本公开的实施例中,共享存储空间中还部署有设定事件的处理代码,即共享的资源包括设定事件的处理代码,逻辑层从共享存储空间中获取设定事件的处理代码。应说明的是,对处理代码不做过多限定,不同的设定事件可对应不同的处理代码。
84.在一种实施方式中,可在共享存储空间中建立设定事件和处理代码之间的映射关系或者映射表,逻辑层在获取到设定事件之后,查询上述映射关系或者映射表,将查询到的处理代码确定为设定事件的处理代码。
85.在一种实施方式中,逻辑层基于渲染代码和设定事件,生成设定事件对应的渲染指令,并向视图层发送渲染指令,视图层响应于渲染指令,对目标页面进行渲染。由此,该方法中逻辑层可基于渲染代码和设定事件,生成渲染指令,并直接向视图层发送渲染指令,以驱动视图层对目标页面进行渲染,相较于相关技术中逻辑层向视图层发送数据的通信方式,有助于减小逻辑层和视图层之间的通信次数和通信耗时,进而提高了小程序的页面渲染速度。
86.综上,根据本公开实施例的小程序的页面渲染方法,视图层获取目标页面上的设
定事件,视图层将设定事件发送至逻辑层,逻辑层从共享存储空间中获取设定事件的处理代码,逻辑层执行处理代码,并基于处理代码,对设定事件进行处理。由此,逻辑层和视图层之间可通过共享存储空间来共享资源,共享的资源还包括设定事件的处理代码,逻辑层可从共享存储空间中获取设定事件的处理代码,并基于设定事件的处理代码对设定事件进行处理。
87.图4是根据本公开第四实施例的小程序的页面渲染方法的流程示意图。
88.如图4所示,本公开第四实施例的小程序的页面渲染方法,包括:
89.s401,逻辑层从共享存储空间中获取用于渲染页面的渲染代码。
90.s402,逻辑层执行渲染代码。
91.步骤s401-s402的相关内容可参见上述实施例,这里不再赘述。
92.s403,逻辑层基于渲染代码,向渲染引擎发送渲染指令。
93.本公开的实施例中,视图层部署有渲染引擎。
94.步骤s403的相关内容,可参见步骤s103,这里不再赘述。
95.在一种实施方式中,逻辑层向视图层发送渲染指令之前,还包括逻辑层获取n个目标页面的渲染方式,并识别n个目标页面的渲染方式为原生渲染。由此,该方法中逻辑层可在n个目标页面的渲染方式均为原生渲染时,向视图层发送渲染指令。
96.s404,渲染引擎响应于渲染指令,从共享存储空间中获取容器。
97.步骤s404的相关内容,可参见步骤s104,这里不再赘述。
98.s405,渲染引擎通过容器对n个目标页面进行渲染。
99.步骤s405的相关内容,可参见步骤s105,这里不再赘述。
100.综上,根据本公开实施例的小程序的页面渲染方法,逻辑层向渲染引擎发送渲染指令,渲染引擎响应于渲染指令,从共享存储空间中获取容器,渲染引擎通过容器对n个目标页面进行渲染。由此,逻辑层可直接向渲染引擎发送渲染指令,以驱动渲染引擎进行页面渲染,相较于相关技术中逻辑层向视图层发送数据,视图层向渲染引擎发送渲染指令的通信方式,有助于减小逻辑层和视图层之间的通信次数和通信耗时,进而提高了小程序的页面渲染速度。
101.图5是根据本公开第五实施例的小程序的页面渲染方法的流程示意图。
102.如图5所示,本公开第五实施例的小程序的页面渲染方法,包括:
103.s501,逻辑层从共享存储空间中获取用于渲染页面的渲染代码。
104.s502,逻辑层执行渲染代码。
105.s503,逻辑层基于渲染代码,向视图层发送渲染指令。
106.s504,视图层响应于渲染指令,从共享存储空间中获取用于渲染页面的容器。
107.步骤s501-s504的相关内容可参见上述实施例,这里不再赘述。
108.s505,视图层从共享存储空间中获取虚拟机。
109.s506,视图层通过虚拟机,为容器创建线程。
110.本公开的实施例中,共享存储空间中部署有虚拟机(virtual machine),即共享的资源包括虚拟机,视图层从共享存储空间中获取虚拟机,并通过虚拟机,为容器创建线程。应说明的是,对虚拟机不做过多限定,比如,虚拟机可包括jsvm(javascript virtual machine,js虚拟机)。
111.在一种实施方式中,小程序采用单容器结构。可以理解的是,一个容器仅需一个线程和一个虚拟机,即小程序采用单线程结构时,小程序也为单容器结构、单虚拟机结构。由此,该方法中仅需在共享存储空间中部署一个容器和一个虚拟机,逻辑层和视图层之间可共享容器、虚拟机和线程,大大减少了容器、虚拟机和线程数量,有助于节省小程序占用的内存资源和线程资源。
112.s507,视图层执行线程,并在线程中通过容器,对n个目标页面进行渲染。
113.比如,如图6所示,目标页面包括目标页面1至3,视图层从共享存储空间中获取用于渲染页面的容器a和虚拟机b,通过虚拟机b为容器a创建线程c,执行线程c,并在线程c中通过容器a对目标页面1进行渲染,并在线程c中通过容器a对目标页面2进行渲染,并在线程c中通过容器a对目标页面3进行渲染。
114.综上,根据本公开实施例的小程序的页面渲染方法,视图层从共享存储空间中获取虚拟机,视图层通过虚拟机,为容器创建线程,视图层执行线程,并在线程中通过容器,对n个目标页面进行渲染。由此,逻辑层和视图层之间可通过共享存储空间来共享资源,共享的资源还包括虚拟机,可通过一个虚拟机为一个容器创建一个线程,并通过一个线程和一个容器对至少一个目标页面进行渲染,大大减少了容器、虚拟机和线程数量,有助于节省小程序占用的内存资源,提高了小程序的适用性。
115.在上述任一实施例的基础上,如图7所示,小程序700包括逻辑层701、视图层702和共享存储空间703。共享存储空间703中部署有在逻辑层701和视图层702之间共享的资源,比如,如图7所示,共享存储空间703中部署有用于渲染页面的渲染代码1、用于渲染页面的容器2、设定事件的处理代码3和虚拟机4。视图层702部署有渲染引擎5。
116.在一种实施方式中,逻辑层701从共享存储空间703中获取渲染代码1,执行渲染代码1,并基于渲染代码1,向渲染引擎5发送渲染指令。相应的,渲染引擎5响应于渲染指令,从共享存储空间703中获取容器2,并通过容器2对n个目标页面进行渲染。
117.在一种实施方式中,渲染引擎5获取目标页面上的设定事件,并将设定事件发送至逻辑层701,逻辑层701从共享存储空间703中获取设定事件的处理代码3,执行设定事件的处理代码3,并基于设定事件的处理代码3,对设定事件进行处理。
118.在一种实施方式中,逻辑层701基于渲染代码1和设定事件,生成设定事件的渲染指令,并向渲染引擎5发送渲染指令,渲染引擎5响应于渲染指令,对目标页面进行渲染。
119.在一种实施方式中,渲染引擎5从共享存储空间703中获取虚拟机4,并通过虚拟机4为容器2创建线程,执行线程,并在线程中通过容器2,对n个目标页面进行渲染。
120.本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
121.根据本公开的实施例,本公开还提供了一种小程序的页面渲染装置,用于实现上述的小程序的页面渲染方法。
122.图8是根据本公开第一实施例的小程序的页面渲染装置的框图。小程序包括逻辑层和视图层,所述小程序的共享存储空间中部署有在所述逻辑层和所述视图层之间共享的资源。
123.如图8所示,本公开实施例的小程序的页面渲染装置800,包括:第一获取模块801、执行模块802、发送模块803、第二获取模块804和渲染模块805。
124.第一获取模块801,用于从所述共享存储空间中获取用于渲染页面的渲染代码;
125.执行模块802,用于执行所述渲染代码;
126.发送模块803,用于基于所述渲染代码,向所述视图层发送渲染指令;
127.第二获取模块804,用于响应于所述渲染指令,从所述共享存储空间中获取用于渲染页面的容器;
128.渲染模块805,用于通过所述容器对n个目标页面进行渲染,其中,n为正整数。
129.在本公开的一个实施例中,所述渲染模块805,还用于:从所述容器中获取第i个目标页面对应的渲染资源,其中,1≤i≤n,i为正整数;通过所述容器和所述第i个目标页面对应的渲染资源,对所述第i个目标页面进行渲染。
130.在本公开的一个实施例中,所述渲染模块805,还用于:从所述小程序的存储空间中获取n个所述目标页面对应的渲染资源;将n个所述目标页面对应的渲染资源分别存储在所述容器中。
131.在本公开的一个实施例中,所述将n个所述目标页面对应的渲染资源分别存储在所述容器中之后,所述渲染模块805,还用于:识别n个所述目标页面中的m个第一页面对应的渲染资源之间存在重合渲染资源,其中,2≤m≤n,m为正整数;保留所述容器中的任一第一页面对应的所述重合渲染资源。
132.在本公开的一个实施例中,所述渲染模块805,还用于:识别n个所述目标页面中的m个第一页面对应的渲染资源之间存在重合渲染资源,并识别每个所述第一页面对应的渲染资源中除所述重合渲染资源之外的差异渲染资源,其中,2≤m≤n,m为正整数;将所述重合渲染资源和所述差异渲染资源分别存储在所述容器中。
133.在本公开的一个实施例中,所述小程序的页面渲染装置800还包括:处理模块,所述处理模块,用于:获取所述目标页面上的设定事件;将所述设定事件发送至所述逻辑层;从所述共享存储空间中获取所述设定事件的处理代码;执行所述处理代码,并基于所述处理代码,对所述设定事件进行处理。
134.在本公开的一个实施例中,所述视图层部署有渲染引擎;所述处理模块,还用于:通过所述渲染引擎将所述设定事件发送至所述逻辑层。
135.在本公开的一个实施例中,所述处理模块,还用于:基于所述渲染代码和所述设定事件,生成所述设定事件对应的渲染指令,并向所述视图层发送所述渲染指令;所述渲染模块805,还用于:响应于所述渲染指令,对所述目标页面进行渲染。
136.在本公开的一个实施例中,所述渲染模块805,还用于:从所述共享存储空间中获取虚拟机;通过所述虚拟机,为所述容器创建线程;执行所述线程,并在所述线程中通过所述容器,对n个所述目标页面进行渲染。
137.在本公开的一个实施例中,所述视图层部署有渲染引擎;所述发送模块803,还用于:向所述渲染引擎发送所述渲染指令。
138.在本公开的一个实施例中,所述渲染引擎响应于所述渲染指令,从所述共享存储空间中获取所述容器;所述渲染引擎通过所述容器对n个所述目标页面进行渲染。
139.在本公开的一个实施例中,所述向所述视图层发送所述渲染指令之前,所述发送模块803,还用于:获取n个所述目标页面的渲染方式,并识别n个所述目标页面的渲染方式为原生渲染。
140.综上,本公开实施例的小程序的页面渲染装置,小程序的共享存储空间中部署有在逻辑层和视图层之间共享的资源,逻辑层从共享存储空间中获取用于渲染页面的渲染代码,逻辑层执行渲染代码,逻辑层基于渲染代码,向视图层发送渲染指令,视图层响应于渲染指令,从共享存储空间中获取用于渲染页面的容器,视图层通过容器对n个目标页面进行渲染。由此,逻辑层和视图层之间可通过共享存储空间来共享资源,共享的资源至少包括渲染代码和容器,可通过一个容器对至少一个目标页面进行渲染,大大减少了容器数量,有助于节省小程序占用的内存资源,提高了小程序的适用性。
141.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
142.图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
143.如图9所示,电子设备900包括计算单元901,其可以根据存储在只读存储器(rom)902中的计算机程序或者从存储单元908加载到随机访问存储器(ram)903中的计算机程序,来执行各种适当的动作和处理。在ram 903中,还可存储电子设备900操作所需的各种程序和数据。计算单元901、rom 902以及ram 903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。
144.电子设备900中的多个部件连接至i/o接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许电子设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
145.计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如图1至图7所述的小程序的页面渲染方法。例如,在一些实施例中,小程序的页面渲染方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由rom 902和/或通信单元909而被载入和/或安装到电子设备900上。当计算机程序加载到ram 903并由计算单元901执行时,可以执行上文描述的小程序的页面渲染方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行小程序的页面渲染方法。
146.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算
机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
147.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
148.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
149.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
150.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
151.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtual private server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
152.根据本公开的实施例,本公开还提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现本公开上述实施例所述的小程序的页面渲染方法的步骤。
153.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
154.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1