CN117093303A - 页面访问方法、电子设备及计算机可读存储介质 - Google Patents
页面访问方法、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117093303A CN117093303A CN202311022306.2A CN202311022306A CN117093303A CN 117093303 A CN117093303 A CN 117093303A CN 202311022306 A CN202311022306 A CN 202311022306A CN 117093303 A CN117093303 A CN 117093303A
- Authority
- CN
- China
- Prior art keywords
- page
- sub
- rendered
- content
- main process
- 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
- 238000000034 method Methods 0.000 title claims abstract description 320
- 230000008569 process Effects 0.000 claims abstract description 154
- 238000009877 rendering Methods 0.000 claims abstract description 132
- 230000000007 visual effect Effects 0.000 claims abstract description 83
- 238000011084 recovery Methods 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 239000002184 metal Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000006378 damage Effects 0.000 description 3
- RDYMFSUJUZBWLH-UHFFFAOYSA-N endosulfan Chemical compound C12COS(=O)OCC2C2(Cl)C(Cl)=C(Cl)C1(Cl)C2(Cl)Cl RDYMFSUJUZBWLH-UHFFFAOYSA-N 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- Image Generation (AREA)
Abstract
本说明书一个或多个实施例提供一种页面访问方法、电子设备及计算机可读存储介质。方法应用于客户端,方法包括:响应于针对目标页面的访问指令,由与客户端对应的主进程为目标页面创建与主进程对应的子进程;其中,子进程用于运行渲染引擎;主进程获取目标页面对应的待渲染页面内容,并将待渲染页面内容同步给子进程,由子进程运行渲染引擎针对待渲染页面内容进行可视化渲染得到可视化内容;主进程获取子进程返回的可视化内容,并将可视化内容通过目标页面进行输出展示;以及响应于针对目标页面的退出指令,结束子进程,并回收与子进程对应的系统资源。本实施例实现在不影响主进程运行的情况下,对渲染引擎所占用的资源进行回收。
Description
技术领域
本说明书一个或多个实施例涉及终端技术领域,尤其涉及一种页面访问方法、电子设备及计算机可读存储介质。
背景技术
渲染引擎是指用于将应用程序中的图像、三维场景、AR/VR场景或者视频等资源转换为可视化内容的软件组件或模块。它负责解析、布局和绘制页面的页面内容,以便在屏幕上显示给用户。在应用程序为用户展示页面的过程中,如果这些页面需要加载可视化内容,则需要运行渲染引擎来进行可视化渲染。
在相关技术中,渲染引擎通常伴随着应用程序的整个生命周期,不支持销毁,一旦对渲染引擎进行销毁,会给应用程序造成影响,例如造成应用程序的闪退。但是,在实际应用中,可能会存在某些包含可视化内容的页面的生命周期较短的情况;比如,链接在主页面上的一些二级页面,这些页面通常不需要常驻显示,用户在短暂访问这些页面之后,通常会迅速的关闭这些页面,用户在短暂访问这些页面之后,通常会迅速的关闭这些页面。在用户访问这些页面时,需要调用渲染引擎来进行可视化渲染,用户在退出这些页面之后,也就不需要运行渲染引擎了。但由于渲染引擎通常都是伴随着应用程序的整个生命周期的,目前并未有相关机制来对渲染引擎所占用的资源进行回收,而渲染引擎的内存资源不回收则会在后台一直运行,一旦渲染引擎出现异常,会导致整个应用程序闪退。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种页面访问方法、电子设备及计算机可读存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种页面访问方法,所述方法应用于客户端,所述方法包括:
响应于针对目标页面的访问指令,由与所述客户端对应的主进程为所述目标页面创建与所述主进程对应的子进程;其中,所述子进程用于运行渲染引擎;所述目标页面用于展示基于所述渲染引擎进行可视化渲染得到的可视化内容;
所述主进程获取所述目标页面对应的待渲染页面内容,并将所述待渲染页面内容同步给所述子进程,由所述子进程运行所述渲染引擎针对所述待渲染页面内容进行可视化渲染得到可视化内容;
所述主进程获取所述子进程返回的所述可视化内容,并将所述可视化内容通过所述目标页面进行输出展示;以及
响应于针对所述目标页面的退出指令,结束所述子进程,并回收与所述子进程对应的系统资源。
可选的,在将所述待渲染页面内容同步给所述子进程之前,还包括:
响应于针对所述目标页面的访问指令,所述主进程创建与在所述目标页面待展示的可视化内容对应的视图组件,并将所述视图组件对应的存储空间同步给所述子进程。
可选的,所述将所述待渲染页面内容同步给所述子进程,包括:
所述主进程将所述待渲染页面内容写入与所述子进程共享的目标文件中,并将所述待渲染页面内容在所述目标文件中的存储路径同步给所述子进程,以使所述子进程基于所述存储路径从所述目标文件中读取所述待渲染页面内容。
可选的,所述子进程运行所述渲染引擎针对所述待渲染页面内容进行可视化渲染得到可视化内容,包括:
所述子进程运行所述渲染引擎,基于所述视图组件对所述待渲染页面内容进行可视化渲染得到可视化内容,并将所述可视化内容写入所述视图组件对应的存储空间;
所述主进程获取所述子进程返回的所述可视化内容,包括:
所述主进程从所述视图组件对应的存储空间读取所述可视化内容。
可选的,所述主进程获取所述目标页面对应的待渲染页面内容,包括:
所述主进程从服务端下载最新版本的压缩后的待渲染页面内容,并对所述压缩后的待渲染页面内容进行解压处理。
可选的,所述由与所述客户端对应的主进程为所述目标页面创建与所述主进程对应的子进程,包括:
所述主进程将子进程的创建信息发送给操作系统中的管理服务进程,以使所述管理服务进程根据所述创建信息创建与所述主进程对应的子进程;
其中,所述主进程和所述子进程通过所述管理服务进程提供的接口进行进程间通信。
可选的,所述目标页面包括所述客户端面向用户输出的主页面中包含的子页面。
可选的,所述目标页面为链接到所述客户端对应的主页面的二级页面;
所述渲染引擎包括二维渲染引擎和/或三维渲染引擎;所述三维渲染引擎包括unity引擎。
根据本说明书一个或多个实施例的第二方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器执行所述可执行指令时,用于实现第一方面任一项所述的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面任一项所述方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开实施例中,通过采用多进程方案将渲染引擎运行在独立的子进程中,并利用主进程和子进程之间的进程间通信,将渲染引擎进行可视化渲染得到的可视化内容返回给主进程进行输出展示,从而可以在用户退出目标页面的情况下,结束子进程对渲染引擎占用的系统资源进行回收。而且,由于主进程和子进程相互隔离,因此结束子进程对渲染引擎进行关闭,并不会对主进程造成影响。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1是一示例性实施例提供的一种页面访问方法的流程图。
图2是一示例性实施例提供的一种主进程和子进程的时序交互图。
图3是一示例性实施例提供的一种服务端和客户端的结构示意图。
图4是一示例性实施例提供的另一种主进程和子进程的时序交互图。
图5是一示例性实施例提供的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
渲染引擎是指用于将应用程序中的图像、三维场景、AR/VR场景或者视频等资源转换为可视化内容的软件组件或模块。它负责解析、布局和绘制页面的页面内容,以便在屏幕上显示给用户。在应用程序为用户展示页面的过程中,如果这些页面需要加载可视化内容,则需要运行渲染引擎来进行可视化渲染。示例性的,渲染引擎包括二维渲染引擎和三维渲染引擎中的至少一种,但不限于此。
在相关技术中,渲染引擎通常都是伴随着应用程序的整个生命周期的,并不支持销毁,一旦对渲染引擎进行销毁,会给应用程序造成影响;例如,可能会造成应用程序的闪退。然而,在实际应用中,可能会存在某些包含可视化内容的页面的生命周期较短的情况;比如,链接在主页面上的一些二级页面,这些页面通常不需要常驻显示,用户在短暂访问这些页面之后,通常会迅速的关闭这些页面。在用户访问这些页面时,需要调用渲染引擎对该页面进行可视化渲染,用户在退出这些页面之后,通常也就不需要继续运行渲染引擎了。
但由于渲染引擎通常都是伴随着应用程序的整个生命周期的,目前并未有相关机制来对渲染引擎所占用的资源进行回收,导致渲染引擎会在后台一直运行。而在这种情况下,一旦渲染引擎出现异常,可能会导致整个应用程序发生闪退。
例如,以包含可视化内容的页面,为链接在主页面上的一些二级页面为例,如果主页面链接的二级页面较多,用户在主页面上进行操作时,可能需要频繁的访问、关闭生命周期较短的二级页面。如果渲染引擎在后台一直运行,那么用户不断的访问、关闭生命周期较短的二级页面,则会导致这些被频繁访问的二级页面的缓存数据所占用的系统资源,始终不能及时的被回收,从而这些二级页面的缓存数据一旦在渲染引擎中大量“堆积”,势必会影响渲染引擎的性能,造成渲染引擎出现异常,导致整个应用程序发生闪退。
基于此,本说明书提出了一种采用多进程的方式,来对渲染引擎的系统资源进行回收管理的技术方案。
在该方案下,可以在用户访问目标页面时,由与客户端对应的主进程为渲染引擎创建子进程,并通过该子进程来运行渲染引擎对该目标页面的待渲染页面内容进行可视化渲染,并在用户退出该目标页面时,结束该子进程,对该子进程对应的系统资源进行回收。
在以上技术方案中,通过采用多进程方案将渲染引擎运行在独立的子进程中,并利用主进程和子进程之间的进程间通信,将渲染引擎对目标页面包含的页面内容进行可视化渲染得到的可视化内容返回给主进程进行输出展示,从而可以在用户退出目标页面的情况下,结束子进程对渲染引擎占用的系统资源进行回收。而且,由于主进程和子进程相互隔离,因此结束子进程对渲染引擎进行关闭,并不会对主进程造成影响。
本说明书实施例提供的页面访问方法可以应用于客户端,该客户端可以安装于具有显示界面的电子设备中,所述电子设备包括但不限于智能电话/手机、平板计算机、个人数字助理(PDA)、膝上计算机、台式计算机、媒体内容播放器、视频游戏站/系统、虚拟现实系统、增强现实系统、可穿戴式设备(例如,手表、眼镜、手套、头饰(例如,帽子、头盔、虚拟现实头戴耳机、增强现实头戴耳机、头装式装置(HMD)、头带)、挂件、臂章、腿环、鞋子、马甲)、遥控器、或者任何其他类型的设备。
请参阅图1和图2,图1为本公开实施例提供的一种页面访问方法的流程示意图,图2为客户端的主进程和子进程之间的交互时序图。所述方法应用于客户端,包括:
在S101中,响应于针对目标页面的访问指令,由与所述客户端对应的主进程为所述目标页面创建与所述主进程对应的子进程;其中,所述子进程用于运行渲染引擎;所述目标页面用于展示基于所述渲染引擎进行可视化渲染得到的可视化内容。
示例性的,目标页面包括所述客户端面向用户输出的主页面中包含的子页面,子页面显示的页面内容包括基于渲染引擎进行可视化渲染得到的可视化内容。用户可以根据实际需要访问或者退出该子页面,子页面可以是链接到主页面的二级页面、链接到二级页面的三级页面、或者是链接到三级页面的四级页面等等,本实施例对此不做任何限制。也就是说,目标页面是生命周期较短、且用于展示基于渲染引擎得到的可视化内容的页面。
为避免出现上述相关技术中的问题,本说明书实施例实现(201)由客户端对应的主进程为所述目标页面创建与主进程对应的子进程。在子进程创建完成之后,(202)可以在子进程中初始化渲染引擎,并运行渲染引擎;主进程和子进程相互隔离,从而方便在用户退出目标页面时回收渲染引擎的资源。
在S102中,所述主进程获取所述目标页面对应的待渲染页面内容,并将所述待渲染页面内容同步给所述子进程,由所述子进程运行所述渲染引擎针对所述待渲染页面内容进行可视化渲染得到可视化内容。
示例性的,为了避免子进程占用过多资源,可以仅在子进程中初始化渲染引擎,而(203)目标页面对应的待渲染页面内容可以由主进程获取,并(204)通过进程间的通信同步给所述子进程,实现跨进程共享资源;进而(205)子进程中的渲染引擎针对所述待渲染页面内容进行可视化渲染得到可视化内容。
在S103中,所述主进程获取所述子进程返回的所述可视化内容,并将所述可视化内容通过所述目标页面进行输出展示;以及响应于针对所述目标页面的退出指令,结束所述子进程,并回收与所述子进程对应的系统资源。
示例性的,(206)子进程在渲染引擎渲染完成之后,可以通过进程间的通信将渲染完成的可视化内容同步给主进程,以便(207)主进程将其进行展示在目标页面中。最后,(208)主进程可以响应于目标页面的退出指令,通过进程间通信向子进程发送进程结束指令,以达到回收所述子进程对应的系统资源,销毁渲染引擎的目的。
本实施例中,通过多进程方案将渲染引擎运行在独立的子进程中,通过主进程和子进程之间的进程间通信实现主进程可以在目标页面中展示渲染引擎渲染得到的可视化内容;在用户退出目标页面的情况下可以结束子进程,从而回收渲染引擎的资源,并且主进程和子进程相互隔离,销毁渲染引擎也就不会对主进程造成影响。可以理解的是,本说明书实施例对于主进程创建子进程的具体创建方式不做任何限制,可依据实际应用场景进行具体选择。
在一可能的实现方式中,比如在Android系统中,主进程可以将子进程的创建信息发送给操作系统中的管理服务进程,以使管理服务进程根据创建信息创建与主进程对应的子进程。
其中,操作系统中的管理服务进程负责管理其他进程的创建、销毁和进程间通信。在操作系统启动时,管理服务进程会作为一个系统级进程启动,并在系统运行期间一直存在。服务管理进程提供了一种机制,使得其他进程可以通过与服务管理进程进行交互来请求创建新的进程、获取进程间通信的句柄等。
在操作系统中,每个进程都有一个唯一的进程标识符(PID)。示例性的,管理服务进程在根据创建信息创建与主进程对应的子进程之后,向主进程返回子进程的进程标识符,主进程会保存子进程的进程标识符,以便后续基于子进程的进程标识符与子进程进行进程间通信。示例性的,主进程和子进程可以通过管理服务进程提供的接口进行进程间通信。
在另一种可能的实现方式中,在Unix系统和类Unix系统中,主进程可以通过使用fork()函数来创建子进程。
在又一种可能的实现方式中,比如在Windows操作系统中,主进程可以通过使用CreateProcess()函数指定要运行的可执行文件、命令行参数和其他相关信息来创建子进程。
在一些实施例中,在子进程创建完成之后,子进程可以初始化渲染引擎。示例性的,渲染引擎包括二维渲染引擎和三维渲染引擎中的至少一种,但不限于此。渲染引擎比如可以是三维渲染引擎,包括但不限于unity、Unreal Engine等。或者是二维引擎,包括但不限于Cocos2d、Phaser等。又或者是基于图形编程的渲染引擎,如OpenGL、DirectX或者Metal等。
(1)Unity:Unity是一款功能强大的游戏引擎,支持跨多个平台,包括Windows、Mac、iOS、Android等。它提供了一个可视化的开发环境,并具有强大的渲染、物理模拟、碰撞检测、动画系统等功能。Unity支持C#和UnityScript(一种类似于JavaScript的脚本语言)作为编程语言,使开发者能够快速构建出高质量的2D和3D游戏。
(2)Unreal Engine:Unreal Engine是由Epic Games开发的游戏引擎,同样支持多个平台,包括Windows、Mac、iOS、Android等。它提供了一系列强大的工具和功能,包括高级的渲染引擎、物理模拟、动画系统、人工智能等。Unreal Engine使用C++作为主要的编程语言,开发者可以编写高性能的游戏逻辑和定制化功能。
(3)Cocos2d:Cocos2d是一个开源的二维游戏引擎,支持跨平台开发。它提供了易于使用的API和工具,允许开发者创建高质量的2D游戏和应用程序。Cocos2d支持多种编程语言,如C++、JavaScript和Lua,并提供了丰富的功能,包括场景管理、精灵动画、碰撞检测等。
(4)Phaser:Phaser是一个基于JavaScript的快速、免费的开源HTML5游戏框架,用于构建跨平台的2D游戏。它在HTML5 Canvas或WebGL上进行渲染,并提供了一系列易于使用的功能,如图像加载、音频管理、物理引擎等。Phaser具有活跃的社区和广泛的文档和示例资源。
(5)OpenGL:OpenGL(Open Graphics Library)是一种跨平台的图形编程接口,用于渲染2D和3D图形。它提供了一套函数和工具,允许开发者使用高效的方式操作图形硬件,并在各种平台上实现可移植的图形应用程序。OpenGL广泛应用于游戏开发、计算机辅助设计(CAD)、科学可视化等领域。
(6)DirectX:DirectX是由微软开发的多媒体和图形编程接口集合。它提供了一套丰富的API,用于处理2D和3D图形、音频、输入设备等。DirectX主要用于Windows平台上的游戏开发和多媒体应用程序,为开发者提供了高性能的图形和多媒体处理能力。
(7)Metal:Metal是苹果公司推出的图形编程接口,专门针对iOS、macOS和tvOS平台。Metal提供了更低级别的访问接口,使开发者能够更好地利用苹果设备上的图形硬件,并实现高性能的图形渲染和计算任务。Metal在苹果的生态系统中得到广泛应用,包括游戏开发、AR/VR应用、科学计算等领域。
在一些实施例中,在渲染引擎初始化完成之后,子进程可以通过进程间的通信,来通知主进程,以便主进程进行接下来的其他事务。示例性的,比如在Android系统中,主进程和子进程可以通过管理服务进程提供的接口进行进程间通信。子进程可以通过管理服务进程提供的接口,向主进程发送第一通知,以通知主进程:子进程已将渲染引擎初始化完成。
当然,也可以通过其他的进程间通信方式,如:(1)共享内存(Shared Memory):共享内存允许父进程和子进程共享一块内存区域,从而实现高效的数据交换。(2)消息队列(Message Queue):消息队列允许进程之间传递消息,每个消息都有一个特定的类型和优先级。(3)管道:管道是一种单向通信机制,可以在父进程和子进程之间传递数据。父进程可以将数据写入管道,子进程则可以从管道中读取这些数据。
在一些实施例中,主进程在创建子进程之后,可以获取目标页面对应的待渲染页面内容,然后将待渲染页面内容同步给子进程。
在一种可能的实现方式中,目标页面对应的待渲染页面内容可以预先存储在本地存储空间中,主进程可以直接从本地存储空间中读取目标页面对应的待渲染页面内容,然后将待渲染页面内容同步给子进程。
在另一种可能的实现方式中,考虑到存在可视化内容需要频繁性更新的需求,以应对目标页面中的可视化内容的多样化展示,请参阅图3,客户端与服务端通信连接,服务端存储有目标页面对应的最新版本的待渲染页面内容,与所述客户端对应的主进程可以从服务端中下载最新版本的待渲染页面内容,然后将待渲染页面内容同步给子进程,以应对目标页面中的可视化内容的多样化展示情况。
示例性的,为了加快下载效率,服务端通常会将最新版本的待渲染页面内容进行压缩处理,得到最新版本的压缩后的待渲染页面内容。因此,与所述客户端对应的主进程可以从服务端下载最新版本的压缩后的待渲染页面内容,并对所述压缩后的待渲染页面内容进行解压处理,进而将解压后的待渲染页面内容同步给子进程。本实施例中,为了避免子进程占用过多资源,可以仅在子进程中初始化渲染引擎,而目标页面对应的待渲染页面内容可以由主进程获取,实现跨进程共享资源。
示例性的,为了进一步提高效率,主进程可以在本地存储已下载的当前最新版本的待渲染页面内容以及版本号。在后续应用阶段,当用户再次访问目标页面时,主进程可以检测本地存储的目标页面对应的待渲染页面内容是否是最新版本,比如可以基于本地存储的待渲染页面内容的版本号和服务端存储的待渲染页面内容的最新版本号之间的差异,确定本次存储的待渲染页面内容是否为最新版本。
比如,主进程可以从服务端获取目标页面对应的待渲染页面内容的最新版本号,如果本地存储的待渲染页面内容的版本号与最新版本号不一致,确定在本地存储的待渲染页面内容不是最新版本。在此情况下,主进程可以从服务端下载最新版本的压缩后的待渲染页面内容,并对所述压缩后的待渲染页面内容进行解压处理,得到目标页面对应的最新版本的待渲染页面内容。如果本地存储的待渲染页面内容的版本号与最新版本号一致,则无需重复下载,有利于节省下载资源。
在一些实施例中,为了解决跨进程无法共享资源的问题,本公开实施例实现主进程在将目标页面的待渲染页面内容同步给子进程的时候,可以通过进程间读写同一个文件的方式,实现跨进程共享资源。示例性的,主进程可以将待渲染页面内容写入与子进程共享的目标文件中,然后将待渲染页面内容在目标文件中的存储路径同步给子进程,则子进程可以基于存储路径从目标文件中读取待渲染页面内容,从而可以由子进程运行渲染引擎针对待渲染页面内容进行可视化渲染得到可视化内容。
在一些实施例中,渲染引擎在可视化渲染完成之后,子进程可以通过进程间通信将可视化内容返回给主进程。
在另一些实施例中,考虑到上述的可视化内容返回方式需要经过一次或一次以上的拷贝过程,从而降低了渲染效率。因此,为了提高渲染效率,响应于针对目标页面的访问指令,可以由主进程创建与在目标页面待展示的可视化内容对应的视图组件,并将视图组件对应的存储空间同步给子进程。本实施例通过共享视图组件的方式,减少了可视化内容的拷贝次数,极大提高了渲染效率。
在创建视图组件的过程中,可以根据实际需求设置视图组件的参数,比如尺寸、格式、深度缓冲等。在主进程将视图组件对应的存储空间同步给子进程之后,可以由子进程运行渲染引擎,由渲染引擎基于视图组件对待渲染页面内容进行可视化渲染得到可视化内容,并将所述可视化内容写入所述视图组件对应的存储空间,也就是将渲染得到的可视化内容绘制到所述视图组件中。
渲染引擎在可视化渲染完成、并且子进程将可视化内容写入视图组件对应的存储空间之后,子进程可以通过进程间通信向主进程发送第二通知,以通知主进程:可视化内容已渲染完成。则主进程可以从视图组件对应的存储空间读取所述可视化内容,然后基于视图组件将可视化内容在目标页面中展示。本实施例通过共享视图组件的方式,减少了可视化内容的拷贝次数,极大提高了渲染效率。
在一些实施例中,主进程可以响应于针对目标页面的退出指令,结束子进程,并回收与子进程对应的系统资源。由于渲染引擎运行在独立的子进程中,在用户退出目标页面时直接结束子进程,达到回收渲染引擎的资源的目的,且由于主进程和子进程相互独立,也就不会给主进程造成影响,主进程正常运行。
在一示例性的实施例中,请参阅图4,以目标页面为链接到所述客户端对应的主页面的二级页面、渲染引擎为unity引擎为例进行示例性说明:
301,响应于针对二级页面的访问指令,主进程为二级页面创建子进程。
302,主进程创建与在目标页面待展示的可视化内容对应的视图组件。
303,主进程将视图组件对应的存储空间同步给子进程,以与子进程共享视图组件。
304,子进程初始化unity引擎。
305,在unity引擎初始化完成后,子进程通知主进程unity引擎初始化完成。
306,主进程从服务端下载最新版本的压缩后的待渲染页面内容,并对压缩后的待渲染页面内容进行解压处理。
307,(1)主进程将待渲染页面内容写入与子进程共享的目标文件中,并(2)将待渲染页面内容在目标文件中的存储路径同步给子进程。
308,子进程从目标文件中读取待渲染页面内容。
309,子进程运行unity引擎,基于视图组件对待渲染页面内容进行可视化渲染得到可视化内容。
310,在unity引擎渲染完成之后,(1)子进程将将可视化内容写入视图组件对应的存储空间,并(2)通知主进程unity引擎已渲染完成。
311,(1)主进程从视图组件对应的存储空间读取可视化内容,(2)基于视图组件将可视化内容展示在目标页面中。
312,响应于针对目标页面的退出指令,主进程结束子进程,并回收与子进程对应的系统资源。
本实施例中,通过多进程方案将渲染引擎运行在独立的子进程中,并且为了避免子进程占用过多资源,可以仅在子进程中初始化渲染引擎,而目标页面对应的待渲染页面内容可以由主进程获取,并利用进程间的通信同步给所述子进程,实现跨进程共享资源;进而利用主进程和子进程之间的进程间通信实现将渲染引擎进行可视化渲染得到的可视化内容返回给主进程进行输出展示;在用户退出目标页面的情况下可以结束子进程,从而回收渲染引擎的资源,并且主进程和子进程相互隔离,销毁渲染引擎也就不会对主进程造成影响。
以上实施方式中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。
在一些实施例中,本说明书实施例还提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现上述中任一项所述的方法。
示例性的,图5是一示例性实施例提供的一种电子设备的示意结构图。请参考图5,在硬件层面,该电子设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他场景所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在一些实施例中,本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述任一项所述方法的步骤。
需要说明的是,本说明书实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种页面访问方法,其特征在于,所述方法应用于客户端,所述方法包括:
响应于针对目标页面的访问指令,由与所述客户端对应的主进程为所述目标页面创建与所述主进程对应的子进程;其中,所述子进程用于运行渲染引擎;所述目标页面用于展示基于所述渲染引擎进行可视化渲染得到的可视化内容;
所述主进程获取所述目标页面对应的待渲染页面内容,并将所述待渲染页面内容同步给所述子进程,由所述子进程运行所述渲染引擎针对所述待渲染页面内容进行可视化渲染得到可视化内容;
所述主进程获取所述子进程返回的所述可视化内容,并将所述可视化内容通过所述目标页面进行输出展示;以及
响应于针对所述目标页面的退出指令,结束所述子进程,并回收与所述子进程对应的系统资源。
2.根据权利要求1所述的方法,其特征在于,在将所述待渲染页面内容同步给所述子进程之前,还包括:
响应于针对所述目标页面的访问指令,所述主进程创建与在所述目标页面待展示的可视化内容对应的视图组件,并将所述视图组件对应的存储空间同步给所述子进程。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述待渲染页面内容同步给所述子进程,包括:
所述主进程将所述待渲染页面内容写入与所述子进程共享的目标文件中,并将所述待渲染页面内容在所述目标文件中的存储路径同步给所述子进程,以使所述子进程基于所述存储路径从所述目标文件中读取所述待渲染页面内容。
4.根据权利要求2所述的方法,其特征在于,所述子进程运行所述渲染引擎针对所述待渲染页面内容进行可视化渲染得到可视化内容,包括:
所述子进程运行所述渲染引擎,基于所述视图组件对所述待渲染页面内容进行可视化渲染得到可视化内容,并将所述可视化内容写入所述视图组件对应的存储空间;
所述主进程获取所述子进程返回的所述可视化内容,包括:
所述主进程从所述视图组件对应的存储空间读取所述可视化内容。
5.根据权利要求1所述的方法,其特征在于,所述主进程获取所述目标页面对应的待渲染页面内容,包括:
所述主进程从服务端下载最新版本的压缩后的待渲染页面内容,并对所述压缩后的待渲染页面内容进行解压处理。
6.根据权利要求1所述的方法,其特征在于,所述由与所述客户端对应的主进程为所述目标页面创建与所述主进程对应的子进程,包括:
所述主进程将子进程的创建信息发送给操作系统中的管理服务进程,以使所述管理服务进程根据所述创建信息创建与所述主进程对应的子进程;
其中,所述主进程和所述子进程通过所述管理服务进程提供的接口进行进程间通信。
7.根据权利要求1所述的方法,其特征在于,所述目标页面包括所述客户端面向用户输出的主页面中包含的子页面。
8.根据权利要求1或7所述的方法,其特征在于,所述目标页面为链接到所述客户端对应的主页面的二级页面;
所述渲染引擎包括二维渲染引擎和/或三维渲染引擎;所述三维渲染引擎包括unity引擎。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1至8中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311022306.2A CN117093303A (zh) | 2023-08-14 | 2023-08-14 | 页面访问方法、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311022306.2A CN117093303A (zh) | 2023-08-14 | 2023-08-14 | 页面访问方法、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117093303A true CN117093303A (zh) | 2023-11-21 |
Family
ID=88782098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311022306.2A Pending CN117093303A (zh) | 2023-08-14 | 2023-08-14 | 页面访问方法、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117093303A (zh) |
-
2023
- 2023-08-14 CN CN202311022306.2A patent/CN117093303A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832108B (zh) | 3D canvas网页元素的渲染方法、装置及电子设备 | |
US8675000B2 (en) | Command buffers for web-based graphics rendering | |
CN112947969B (zh) | 一种页面离屏渲染方法、装置、设备和可读介质 | |
JP6882992B2 (ja) | 動画像をプレビューする方法及びデバイス、並びに表現パッケージを表示する方法及びデバイス | |
WO2019238145A1 (zh) | 一种基于WebGL的图形绘制方法、装置及系统 | |
CN107526623B (zh) | 一种数据处理方法及装置 | |
CN112256421B (zh) | 通信处理方法、装置、存储介质及电子设备 | |
CN109582317B (zh) | 用于调试寄宿应用的方法和装置 | |
US20230403437A1 (en) | Graphics engine and graphics processing method applicable to player | |
CN111796812B (zh) | 图像渲染的方法、装置、电子设备及计算机可读存储介质 | |
CN114721659A (zh) | 函数服务处理方法、装置及电子设备 | |
US10268647B2 (en) | Asset catalog layered image support | |
CN107092514A (zh) | 一种页面内容展示方法及装置 | |
US9275426B2 (en) | Method and apparatus for unifying graphics processing unit computation languages | |
CN116503529A (zh) | 渲染、3d画面控制方法、电子设备和计算机可读存储介质 | |
CN117093303A (zh) | 页面访问方法、电子设备及计算机可读存储介质 | |
CN116962807A (zh) | 视频渲染方法、装置、设备及存储介质 | |
US11330338B2 (en) | Method and system of displaying video comments, computing device, and readable storage medium | |
CN113888684A (zh) | 图形渲染方法、设备及计算机存储介质 | |
CN114281773A (zh) | 动画显示方法、装置、电子设备及计算机可读存储介质 | |
CN111931111A (zh) | 一种网页开发方法、网页展示方法、装置及设备 | |
US20240160501A1 (en) | Interoperability between actor frameworks and asynchronous frameworks | |
CN114821001B (zh) | 基于ar的互动方法、装置及电子设备 | |
CN110609682B (zh) | 一种基于WebGL的图形绘制方法、装置及系统 | |
EP4394593A1 (en) | Skin changing method and apparatus for display interface, vehicle and storage medium |
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 |