CN118034822A - 页面处理方法、装置、设备和存储介质 - Google Patents
页面处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN118034822A CN118034822A CN202211361418.6A CN202211361418A CN118034822A CN 118034822 A CN118034822 A CN 118034822A CN 202211361418 A CN202211361418 A CN 202211361418A CN 118034822 A CN118034822 A CN 118034822A
- Authority
- CN
- China
- Prior art keywords
- page
- cache
- application
- information
- skipped
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 47
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims description 71
- 238000012795 verification Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 23
- 230000001960 triggered effect Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 11
- 230000006378 damage Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000008859 change Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000004140 cleaning Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000009191 jumping Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 208000000044 Amnesia Diseases 0.000 description 1
- 238000012896 Statistical algorithm Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000002699 waste material Substances 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/451—Execution arrangements for user interfaces
-
- 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/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种页面处理方法、装置、设备和存储介质,涉及计算机技术领域,可以应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景,方法包括响应于针对应用程序的页面跳转请求,从应用程序的应用缓存中查找待跳转页面的缓存页面配置信息,应用缓存用于存储应用程序对应的至少一个页面的页面配置信息和至少一个页面的界面元素;基于缓存页面配置信息生成待跳转页面的目标配置数据;基于目标配置数据确定待跳转页面的待加载界面元素;在至少一个页面的界面元素中查找与待加载界面元素匹配的缓存界面元素;根据目标配置数据和缓存界面元素生成待跳转页面。本申请能够提高对象元素复用率,且降低缓存占用,实现元素粒度的缓存动态管理。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种页面处理方法、装置、设备和存储介质。
背景技术
随计算机技术和网络的发展,终端设备中通常安装各种应用程序,以满足生活和学习需求。应用程序运行过程中,需对运行数据进行缓存,以提升程序运行稳定性和使用体验,其中,程序的页面管理通常以页面为缓存粒度,将已创建页面的页面数据作为整体进行关联缓存,但在不同的页面加载时机,相同页面的页面数据可能存在增删等变更,上述缓存方式不能满足页面变更的缓存复用,也只能以页面为单位进行缓存数据清理,并且,由于不同页面可能存在部分相同的页面数据,以页面为粒度进行数据缓存,存在大量冗余重复的页面数据,造成存储资源浪费。
发明内容
本申请提供了一种页面处理方法、装置、设备和存储介质,可以优化程序页面对象的缓存机制,提高页面兑现复用率的同时,降低缓存占用。
一方面,本申请提供了一种页面处理方法,所述方法包括:
响应于针对应用程序的页面跳转请求,从所述应用程序的应用缓存中查找待跳转页面的缓存页面配置信息,所述应用缓存用于存储所述应用程序对应的至少一个页面的页面配置信息和所述至少一个页面的界面元素;
基于所述缓存页面配置信息生成所述待跳转页面的目标配置数据;
基于所述目标配置数据确定所述待跳转页面的待加载界面元素;
在所述至少一个页面的界面元素中查找与所述待加载界面元素匹配的缓存界面元素;
根据所述目标配置数据和所述缓存界面元素生成所述待跳转页面。
另一方面提供了一种页面处理装置,所述装置包括:
第一查找模块:用于响应于针对应用程序的页面跳转请求,从所述应用程序的应用缓存中查找待跳转页面的缓存页面配置信息,所述应用缓存用于存储所述应用程序对应的至少一个页面的页面配置信息和所述至少一个页面的界面元素;
配置数据生成模块:用于基于所述缓存页面配置信息生成所述待跳转页面的目标配置数据;
界面元素确定模块:用于基于所述目标配置数据确定所述待跳转页面的待加载界面元素;
第二查找模块:用于在所述至少一个页面的界面元素中查找与所述待加载界面元素匹配的缓存界面元素;
跳转页面生成模块:用于根据所述目标配置数据和所述缓存界面元素生成所述待跳转页面。
另一方面提供了一种计算机设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的页面处理方法。
另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的页面处理方法。
另一方面提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的页面处理方法。
另一方面提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的页面处理方法。
另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令被处理器执行时实现如上述的页面处理方法。
本申请提供的页面处理方法、装置、设备、存储介质、服务器、终端、计算机程序和计算机程序产品,具有如下技术效果:
本申请的技术方案响应于针对应用程序的页面跳转请求,从应用程序的应用缓存中查找待跳转页面的缓存页面配置信息,应用缓存用于存储应用程序对应的至少一个页面的页面配置信息和至少一个页面的界面元素;基于缓存页面配置信息生成待跳转页面的目标配置数据;基于目标配置数据确定待跳转页面的待加载界面元素;在至少一个页面的界面元素中查找与待加载界面元素匹配的缓存界面元素;根据目标配置数据和缓存界面元素生成待跳转页面。通过创建应用程序的缓存区,能够对应用程序对应的已创建页面的数据进行存储,并在应用缓存中以页面配置信息和界面元素为存储和查找粒度,实现程序内的页面对象的单独复用,避免不同页面中相同页面对象的冗余存储,降低存储资源占用,且能够以页面配置信息和界面元素为粒度进行缓存的动态清理,优化缓存机制;同时,在页面加载过程中,先基于缓存页面配置信息生成页面的配置数据,提供页面配置更新时机,以在页面存在对象变更的情况下,确保待加载界面元素的准确性,进而避免不同页面跳转时机下跳转页面的创建错误,实现对象变更页面的数据复用和页面变更,无需重新创建整体页面,提高页面跳转效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种应用环境的示意图;
图2是本申请实施例提供的一种页面处理方法的流程示意图;
图3是本申请实施例提供的一组页面示意图;
图4是本申请实施例提供的一种应用缓存的缓存架构示意图;
图5是本申请实施例提供的一种应用缓存的内存管理逻辑图;
图6是本申请实施例提供的另一种页面处理方法的流程示意图;
图7中示出了本申请提供的另一种页面处理方法的流程示意图;
图8是本申请实施例提供的另一种页面处理方法的流程示意图;
图9是本申请实施例提供的一种页面处理的流程示意图;
图10是本申请实施例提供一种页面处理装置的框架示意图;
图11是本申请实施例提供的一种页面处理方法的电子设备的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或子模块的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或子模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或子模块。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
runtime:本申请是指应用程序的运行时。
请参阅图1,图1是本申请实施例提供的一种应用环境的示意图,如图1所示,该应用环境可以至少包括终端01和服务器02。在实际应用中,终端01和服务器02可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例中的服务器02可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
具体地,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术能够应用于各种领域,如医疗云、云物联、云安全、云教育、云会议、人工智能云服务、云应用、云呼叫和云社交等,云技术基于云计算(cloud computing)商业模式应用,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”,“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务))平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
具体地,上述涉及的服务器02可以包括实体设备,可以具体包括有网络通信子模块、处理器和存储器等等,也可以包括运行于实体设备中的软体,可以具体包括有应用程序等。
具体地,终端01可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、智能语音交互设备、智能家电、智能可穿戴设备、车载终端设备等类型的实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。
本申请实施例中,终端01可以运行应用程序,应用程序包括至少一个应用业务,每一应用业务包括至少一个业务模块,终端01还可以提供应用业务对应的应用缓存,以存储应用业务中各业务模块的页面配置信息和界面元素;终端01可以响应于针对当前显示页面的页面跳转操作生成页面跳转请求以,以触发待跳转页面的生成;在生成和显示待跳转页面的过程中,终端01还可以向服务器02发送请求,以获取待跳转页面所需的页面数据。服务器02上可以响应于终端01的请求,提供页面数据支撑服务,以及还可以接收和存储终端01应用程序发送的运行数据。
此外,可以理解的是,图1所示的仅仅是一种页面处理方法的应用环境,该应用环境可以包括更多或更少的节点,本申请在此不做限制。
以下基于上述应用环境介绍本申请的一种页面处理方法,本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。请参考图2,图2是本申请实施例提供的一种页面处理方法的流程示意图,本说明书提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体地,如图2所示,方法可以包括下述步骤S201-S209。
S201:响应于针对应用程序的页面跳转请求,从应用程序的应用缓存中查找待跳转页面的缓存页面配置信息。
本申请实施例中,应用程序可以为安装并能够运行于终端设备的各种类型的程序,包括但不限于即时通信应用、浏览器应用、支付类应用和多媒体应用等。应用程序启动并触发后,显示应用程序的页面,在针对页面发生针对页面跳转的交互行为后,响应于针对页面跳转的交互操作生成页面跳转请求,以触发待跳转页面的加载流程。应用程序包括至少一个应用业务,应用业务可以基于业务需求设定,例如可以为支付业务或下载业务等,每一应用业务可以包括至少一个业务模块,例如支付业务可以包括账户开户业务模块、验证业务模块等。
具体地,应用缓存用于存储应用程序对应的至少一个页面的页面配置信息和至少一个页面的界面元素。可以理解的,不同的应用业务,或者应用业务中不同的业务模块,均会生成不同的页面,上述至少一个页面包括应用程序中至少一个应用业务对应的页面。
实际应用中,应用程序的页面初次创建和显示后,会在应用缓存中生成该页面对应的页面缓存数据,将页面产生的所有对象放入应用缓存,包括页面配置信息和界面元素,同一页面再次加载时,可以基于页面缓存数据进行页面创建和显示。页面配置信息可以包括页面的数据集合和回调配置信息,数据集合可以包括页面布局信息、页面交互信息和页面传递信息等;页面布局信息可以包括但不限于界面元素的数量、类型和属性,页面样式和界面元素的排布位置等;页面交互信息可包括但不限于针对页面中页面对象对应的交互配置,如针对页面控件指向页面1,点击该页面控件后跳转至页面1;页面传递信息可以包括但不限于页面间的层级跳转信息,如支付业务模块包括页面1,2,3,4,支付过程中,从页面1依序跳转至页面4,支付完成后,由页面4直接跳转至页面1;回调配置信息可以包括页面中页面对象的回调引用配置,如界面元素指向的回调函数等。具体地,界面元素为满足用户交互要求的一系列元素对象,可以包括但不限于页面中的控件、窗口、对话框、菜单、滚动条、图形、视图和文字等。
实际应用中,页面跳转请求可以包括待跳转页面的页面标识信息,进而基于该页面标识信息在应用缓存中查找与页面标识信息对应的页面配置信息,得到上述缓存页面配置信息。
一些实施例中,页面跳转请求为对跳转前显示页面中关联至待跳转页面的界面元素进行预设操作触发的,跳转前显示页面可以为页面跳转请求触发时的当前显示页面,预设操作可以点击操作或滑动操作等,示例性的,请参考图3,点击页面1中的图像输入控件11触发跳转至页面2的页面跳转请求,图像输入控件11与页面2关联。相应的,S201包括:获取关联至待跳转页面的界面元素的对象类别标识;将应用缓存中与对象类别标识关联存储的页面配置信息确定为缓存页面配置信息。如此,基于界面元素的指向配置,实现缓存页面配置信息的快速匹配,实现元素粒度的缓存信息存储和查找,不以整体页面为限,优化缓存机制。需要说明的是,在涉及到身份信息或证件扫描等场景时,身份信息获取或证件扫描等操作是经过被采集身份信息或证件的目标对象授权同意后触发并执行的,在未经目标对象同意和授权的情况下,不执行上述相关操作。
具体地,应用缓存中存储有对象类别标识和页面标识间的映射关系,基于该映射关系确定出界面元素关联的页面,进而确定出该页面的页面配置信息。应用缓存中的缓存对象均具有对象种类标识ID,如单图1的元素ID为ID_A,图文1的元素为ID_B,按钮1的元素为ID_C,通过ID可以从缓存池中得到对应种类的对象。一个实施例中,可以基于界面元素所指向的页面设置对象类别标识,将指向同一跳转页面的界面元素设置为同一对象类别标识,如页面中的三张图片可以指向同一电影海报页面,则三张图片的对象类别标识相同。如此,以跳转配置设置界面元素的对象类别信息,能够提升页面跳转中页面配置信息的匹配效率,且有利于后续的元素引用信息更新。
一些实施例中,预定义有应用程序中各应用业务的公共基类,该公共基类抽取应用业务中各业务模块的页面中相似或相同的数据,如导航栏、底部tab、弹窗等颜色,字体和字号等,以形成公共基类,在进入某个应用业务中,由公共基类来处理页面中的各个公共事务。进一步地,还预定义有每一业务模块的业务子类,业务子类继承自该业务模块所属应用业务的公共基类。相应的,在S201之前,方法还包括:
S301:响应于应用程序中目标应用业务的触发,创建目标应用业务对应的基类控制器。
S303:响应于目标应用业务中目标业务模块的触发,基于基类控制器创建目标业务模块对应的业务控制器,业务控制器继承自目标应用业务对应的基类控制器。
具体地,可以基于上述的公共基类创建基类控制器,基于业务子类创建业务控制器。基类控制器包括应用业务中至少一个业务模块对应的公共页面数据,包括应用业务中各业务模块的页面中相似或相同的页面配置信息和界面元素等页面对象数据,如按钮、图片、播放器、标签、页面配置信息对应的数据集合和事件处理入口等。业务控制器包括业务模块的至少一个页面的页面数据,业务控制器包括业务模块页面中所需的页面配置信息和界面元素等,如页面配置数据来源和交互事件的回调等,用于实现界面元素的创建、转移、销毁,并在产生页面交互时将事件的回调通过基类提供的入口去执行。如此,以应用业务为粒度创建基类控制器,并以业务模块创建继承的业务控制器,利用继承原理使业务控制器将基类控制器中的页面配置信息和界面元素等页面数据进行扩展,实现代码的复用,节省程序运行过程中页面管理的内存损耗。
S203:基于缓存页面配置信息生成待跳转页面的目标配置数据。
本申请实施例中,获取缓存页面配置信息后,结合缓存页面配置信息和该待跳转页面的业务逻辑构建目标配置数据。具体地,待跳转页面当前所需的页面配置数据与缓存页面配置信息对应的页面配置数据一致,如数据集合定义的页面样式、界面元素数量、类型和属性等均一致,则直接创建目标配置数据;若存在更新,则基于业务逻辑更新缓存页面配置信息中变更对象,如发送网络请求从服务器获取变更对象的数据,或从本地存储中读取变更对象的数据文件等。如此,结合缓存数据进行增量、删减或替换等数据更新,以在待跳转页面存在对象变更的情况下,保证确定出的待加载界面元素的准确性。
一些实施例中,基于前述的业务控制器实现上述缓存页面配置信息的获取和配置数据创建。一个实施例中,应用缓存中的页面配置信息可以以其数据大小作为数据标识,以映射至页面标识。
可以理解的,若在应用缓存中未查找到待跳转页面对应的缓存页面配置信息,则基于程序预定义的页面数据和业务逻辑创建待跳转页面的目标配置数据。
S205:基于目标配置数据确定待跳转页面的待加载界面元素。
本申请实施例中,目标配置数据包括待跳转页面中所需界面元素的数量信息、类型和属性信息等,响应于目标配置数据的创建成功,遍历数据以确定待跳转页面所需的待加载界面元素,以便于根据待加载界面元素的元素ID在应用缓存中查找能够复用的对象。
S207:在至少一个页面的界面元素中查找与待加载界面元素匹配的缓存界面元素。
本申请实施例中,应用缓存中存储各应用业务的多个界面元素,基于元素ID进行遍历匹配,以得到可复用的缓存界面元素。
实际应用中,应用缓存基于环形缓冲区构建,包括至少一个缓存池,每一应用业务对应至少一个缓存池,一些实施例中,每一应用业务对应一个缓存池;相应的,S207可以包括:以待跳转页面所属目标应用业务对应的至少一个缓存池为起始,基于环形缓冲区的缓存池指向信息,对应用缓存中的各缓存池进行待加载界面元素的遍历查找,得到缓存界面元素。如此,从任一业务模块或业务应用为入口进行缓存数据查找,均能够实现应用缓存中的数据遍历匹配,实现缓存对象的高效复用,并且,结合对象类别标识能够实现对象的快速查找。
具体地,缓存池用于存储对应业务模块的页面配置信息和界面元素,请参考图4,图4示出了一个实施例提供的应用缓存的架构图,图中的对象元素指页面中需存储至应用缓存的页面配置信息(数据集合和回调配置信息等)和界面元素等,缓存池1、缓存池2和缓存池3连接,形成环形缓冲区,缓存池中设置数据容器,以存储对象元素,ID_A,ID_B,ID_C,ID_E,ID_F,ID_G,ID_H指代对象元素的对象类别标识;并且,缓存池有四个变量来对其中的数据进行管理,_list为缓存池的指针,指向该缓存池的起始地址,_size表示缓存池的大小,_offset是缓存池里的数据索引偏移量,_nextPage指向下一个业务模块的缓存池;如此,通过_list可以确定缓存池的地址,修改_offset以获取对象元素,利用_nextPage连接下一页面的缓存池,从而形成环形缓冲区。可以理解的,该环形缓冲区为基于环形链表维护应用缓存的存储数据结构,以使分散的物理存储区域能够实现数据互联,实现应用缓存的区域扩展和变更,且从应用缓存的任一入口进行数据读取,都能够实现整体缓存区域的数据遍历,提高数据复用率。
一个实施例中,请参考图5,图5中示出了一个实施例提供的应用缓存的内存管理逻辑图。应用程序启动后,创建应用程序中业务应用的基类控制器(baseVC),响应于业务模块的启动,创建继承自baseVC的业务控制器(ExtVC),以通过ExtVC实现页面创建以及将页面的界面元素(UI元素)、数据集合(DataMap)和回调配置信息(callback)存储至对应的缓存池中,进而基于缓存池的预定义机制实现内存管理。
S209:根据目标配置数据和缓存界面元素生成待跳转页面。
可以理解的,应用缓存中可能缺失待加载界面元素中的部分界面元素,则需基于业务控制器创建缺失的界面元素,并结合目标配置数据和缓存界面元素生成待跳转页面,进而执行后续的页面资源加载等渲染过程,实现待跳转页面的显示。
综上,基于上述技术方案,通过创建应用程序的缓存区,能够对应用程序对应的已创建页面的数据进行存储,并在应用缓存中以页面配置信息和界面元素为存储和查找粒度,实现程序内的页面对象的单独复用,避免不同页面中相同页面对象的冗余存储,降低存储资源占用,且能够以页面配置信息和界面元素为粒度进行缓存的动态清理,优化缓存机制;同时,在页面加载过程中,先基于缓存页面配置信息生成页面的配置数据,提供页面配置更新时机,以在页面存在对象变更的情况下,确保待加载界面元素的准确性,进而避免不同页面跳转时机下跳转页面的创建错误,实现对象变更页面的数据复用和页面变更,无需重新创建整体页面,提高页面跳转效率。
基于上述部分或全部实施方式,实际应用中,可以基于引用信息实现应用缓存中的对象管理,具体地,应用缓存中存储有页面配置信息的第一引用信息和界面元素的第二引用信息,第一引用信息表征当前已创建页面对页面配置信息的引用量,第二引用信息表征当前已创建页面对界面元素的引用量;已创建页面是指当前应用程序中已经创建且未销毁的页面,可以为当前显示页面或者后台页面。相应的,请参考图6,在S209之后,方法还包括:
S401:响应于待跳转页面的缓存触发,基于待跳转页面的页面配置信息和界面元素,对缓存页面配置信息和缓存界面元素进行缓存更新处理,得到更新的缓存页面配置信息和更新的缓存界面元素;
S403:对更新的缓存页面配置信息的第一引用信息和更新的缓存界面元素的第二引用信息进行引用量增量更新。
具体地,通过引用量增量增加第一引用信息对应的引用量,以及增加第二引用信息对应的引用量,以表征更新的缓存页面配置信息和更新的缓存界面元素被待跳转页面引用。
如此,在缓存后对更新的缓存对象元素进行引用信息管理,能够降低无效数据缓存量,且有利于实现元素粒度的数据动态管理。
可以理解的,相较于缓存页面配置信息和缓存界面元素,待跳转页面的配置信息和界面元素可能存在增删等更新,响应于缓存触发,在应用缓存中进行更新存储。具体地,缓存触发可以为待跳转页面的显示成功事件触发的,在待跳转页面渲染并成功显示后,进行缓存更新和存储,能够避免页面创建错误或渲染错误造成的无效数据缓存。
具体地,引用信息不为空时,即对象元素(缓存页面配置信息或缓存界面元素)即存在引用对象,则不管是否有其它新增引用,该对象元素均不会被销毁,引用信息为空的状态下,才触发对象元素的销毁操作。
可以理解的,缓存中的每一界面元素、页面配置信息中数据集合的每一数据对象、以及回调配置信息中的每一回调配置对象均具有其对应的引用信息,以表征该单个对象元素的引用量,进而可以针对单个对象元素进行引用更新,实现元素粒度的内存管理,提高对象元素复用率和动态管理效率。
实际应用中,在S209之后,方法还包括S405:响应于跳转前显示页面的销毁,对跳转前显示页面的页面配置信息的第一引用信息和跳转前显示页面的界面元素的第二引用信息进行引用量减量更新。
可以理解的,执行页面跳转后,跳转前显示页面可以在后台运行,以形成后台页面,或者也可以执行页面销毁,不再维护该页面,相应的,在应用缓存中,将应用缓存中跳转前显示页面的页面配置信息中的各对象元素和各界面元素的引用信息均进行引用量减量更新,以对象元素粒度进行引用释放操作。如此,通过引用量减量更新实现销毁页面的缓存信息更新,无需进行整体页面的数据清理,确保应用业务当前复用元素的留存,实现业务页面对象元素的动态调整,无需进行发版更新。
实际应用中,需对应用缓存中的对象元素进行无效数据清除,清除引用信息为空的对象元素,相应的,方法还包括:基于第一引用信息从应用缓存中确定出引用量为空的页面配置信息;基于第二引用信息从应用缓存中确定出引用量为空的界面元素;清除引用量为空的页面配置信息和界面元素。如此,实现元素粒度的数据清理,清除无效缓存数据,避免冗余数据的内存资源占用。
一些实施例中,上述引用量增量更新可以具体为指针拷贝(retain)操作,以将引用信息对应的引用计数加1,引用量减量更新可以为指针释放(release)操作,以及将引用信息对应的引用计数减1。可以理解的,一个对象元素创建并缓存后,其引用计数为1,表示有一个引用对象或指针持有这块内存,拥有这块内存的所有权,若另一引用对象或指针也指向了这块内存,则为表示后者对该内存的所有权,引用计数由再增加1,变为2,其中一个引用对象或指针不再指向该内存,引用计数减1,当引用计数变为0,表示没有任何引用对象或指针持有该内存,则执行销毁操作,释放该内存。
可以理解的,上述技术方案可以应用于待跳转页面为程序原生页面的页面跳转场景,一些情况下,待跳转页面可以为网页视图页面,相应的,应用缓存还用于存储应用程序对应的至少一个网页视图页面的Dom节点信息和至少一个网页视图页面的Dom元素;具体地,可以在缓存池中以分别对页面配置信息、界面元素、Dom节点信息和Dom元素进行分区存储。在待跳转页面为网页视图页面的情况下,若页面跳转请求为重定向请求,请参考图7,方法还包括:
S501:从至少一个网页视图页面的Dom节点信息中查找待跳转页面对应的缓存Dom节点信息;
S503:基于缓存Dom节点信息确定待跳转页面的待加载Dom元素;
S505:从至少一个网页视图页面的Dom元素中查找待跳转页面对应的缓存Dom元素;
S507:根据缓存Dom节点信息和缓存Dom元素生成待跳转页面。
如此,实现重定向网页视图页面的信息存储,以实现重定向页面的元素复用,避免页面的重复创建和缓存。如跳转前显示页面的三个控件指向的落地页为同一网页视图页面,且跳转加载过程中均存在重定向,则每次请求的地址可能不同,基于上述缓存方式,在通过一个控件实现页面创建和显示后,通过其它控件可直接获取缓存的页面信息,不受地址重定向限制。
可以理解的,若未查找到待跳转页面对应的缓存Dom节点信息和缓存Dom元素,则基于业务逻辑获取Dom节点信息和Dom元素,并创建待跳转页面。
可以理解的,在存在对应的缓存数据的情况下,S501与前述的S201相类似。一些实施例中,可以基于关联至待跳转页面的界面元素的对象类别标识,将应用缓存中与对象类别标识关联存储的Dom节点信息确定为缓存Dom节点信息。
具体地,在确定缓存Dom节点信息后,基于业务逻辑生成待跳转页面的目标Dom节点信息,进而遍历目标Dom节点信息,确定所需的待加载Dom元素。可以理解的,待跳转页面不存在对象变更的情况下,目标Dom节点信息与缓存Dom节点信息相同。
一些实施例中,缓存Dom元素为待跳转页面对应的业务方标记的白名单对象,以避免非法对象调用造成的数据安全风险。
一个实施例中,当ExtVC加载到webview容器(网页视图线程)时,即确定待跳转页面为webview页面(网页视图页面),请求地址由服务器可执行重定向,进而将Dom结点信息执行前述的存储至缓存池的操作。
实际应用中,应用缓存还存储Dom元素的第三引用信息,第二引用信息表征当前已创建页面对Dom元素的引用量;相应的,请参考图8,在S507之后,方法还包括下述S601-S607。
S601:响应于待跳转页面的缓存触发,基于待跳转页面的Dom节点信息和Dom元素,对缓存Dom节点信息和缓存Dom元素进行缓存更新处理,得到更新的缓存Dom节点信息和更新的缓存Dom元素。
具体地,S601的具体实现方式与前述S401相类似,在此不再赘述。
S603:对更新的缓存Dom元素进行合法性验证,得到元素验证结果。
S605:若元素验证结果为验证合法,对更新的缓存Dom元素的第三引用信息进行应引用量增量更新。
S607:若验证结果为验证不合法,将更新的缓存Dom元素的第三引用信息标记为不可引用。
具体地,对更新的缓存Dom元素中每一Dom元素进行引用前,对Dom元素进行合法性验证,以确定其是否为业务方标记的白名单对象,即合法对象,若是,则创建引用或引用量增量更新,若否,则不创建页面对该缓存Dom元素的引用,标记为不可引用。具体地,可以将不可引用的缓存Dom元素的第三引用信息置为nil,回收其内存空间,若该Dom元素被标记为合法对象,即白名单对象,则将去执行缓存池的处理流程。如此,对Dom元素先进行合法验证,以确定其是否为业务方的对象元素,避免非法调用,降低隐私数据泄露等安全风险。示例性的,非法调用例如为支付过程中入侵的账户余额获取调用等。
具体地,若关联引用缓存Dom节点信息和缓存Dom元素的页面销毁,则执行引用量减量更新,若第三引用信息为空,则清除相应的缓存Dom节点信息和缓存Dom元素。
实际应用中,S603可以包括:
S6031:基于待跳转页面的网页视图线程对更新的缓存Dom元素进行对象引用的调用拦截;
S6032:基于待跳转页面对应的业务方验证信息对更新的缓存Dom元素进行合法性验证,得到元素验证结果。
具体地,通过网页视图线程在每一缓存Dom元素的引用操作前,执行对象引用的调用拦截,发送至业务方以基于业务方验证信息进行合法性验证,或基于本地存储的业务方验证信息进行合法性验证。
具体地,可以基于程序运行时(runtime)进行对象引用的调用拦截。如此,能够实现重定向网页视图的对象元素复用和内存回收,无需进行发版来实现页面内存的动态回收,优化数据缓存机制。
一个实施例中,应用程序预定义NSObject分类,在分类中定义将引用计数加1和减1的方法,包括alloc、new、retain、copy、release、assign等,以实现函数的调用者进行获取和拦截。
基于上述部分或全部实施方式,一些实施例中,应用缓存中还存储有页面标识与预设阈值的对应关系,如前述的,应用缓存中存储有对象类别标识和页面标识间的映射关系,相应的,也能够确定对象类别标识与预设阈值间的映射关系。
一些实施例中,在通过触发该界面元素的预设操作进而跳转至待跳转页面,得到更新的缓存页面配置信息和更新的缓存界面元素后,并在S403之前,和/或,在得到更新的缓存Dom节点信息和更新的缓存Dom元素之后,并在S605之前,若对页面标识对应的界面元素的预设操作小于预设阈值,不对更新的缓存页面配置信息和更新的缓存界面元素的引用信息进行引用量增量更新;若对页面标识对应的界面元素的预设操作大于等于预设阈值,则执行引用量增量更新。其中,页面标识对应的界面元素是指页面标识映射的对象类别标识所属的界面元素,通过对该界面元素进行预设操作,能够触发至待跳转页面的跳转,如当前显示页面上显示有广告链接的界面元素,点击后触发广告链接对应的广告页面的跳转。如此,通过设置预设阈值,能够确保缓存引用增量的合理性,降低用户兴趣较低的页面信息引用量,优化缓存内容。
具体地,预设阈值可以是基于页面标识对应页面与当前终端用户的匹配度设置的,不同页面标识对应的预设阈值可以不同,上述匹配度可以是服务端基于人工智能模型或者统计算法等对对象信息与页面属性进行匹配或者预测得到。
基于上述部分或全部实施方式,本申请实施例中,在业务模块具有多个已创建页面的情况下,即存在后台页面的情况下,还创建该业务模块对应的页面线性表。具体地,存在后台页面情况下,可以基于业务控制器(ExtVC)在后台页面和当前显示页面的共用元素(如导航栏)中构造栈空间的数据结构,以关联页面线性表,页面线性表中的表元素关联对应业务模块的后台页面和当前显示页面,指示业务模块的多个页面间的跳转层级信息。具体地,页面线性表可以为页面栈。相应的,方法还包括S701-S707。
S701:响应于目标业务模块的后台页面更新请求,基于目标业务模块的页面线性表确定待更新后台页面与当前显示页面间的距离信息。
其中,页面线性表中的表元素关联目标业务模块对应的后台页面和当前显示页面;
S703:基于距离信息和目标业务模块对应的页面跳转信息,确定待更新后台页面和当前显示页面间的目标跳转关联关系;
其中,页面跳转信息包括目标业务模块对应的后台页面和跳转前显示页面间的跳转关联关系;
S705:若目标跳转关联关系为不存在跳转关联,拦截后台页面更新请求;
S707:若目标跳转关联关系为存在跳转关联,发送后台页面更新请求。
如此,利用页面线性表的数据结构,能够基于预定义的页面跳转信息确定是否执行后台页面更新请求,有效减少开销,避免冗余数据加载。
具体地,后台页面已创建但未显示的页面,关联表元素处于页面线性表的非顶端,为后台维护状态,应用缓存中对后台页面的对象元素存在引用,因此可以确定其对象元素的显示和加载状态。当前显示页面关联页面线性表的顶端表元素,在当前页面产生页面交互行为后,如跳转至后台页面的操作,会影响到非顶端的后台页面的加载状态,触发后台页面更新请求,进而可能会执行网络请求和UI更新等。在执行页面更新前,根据页面线性表待更新后台页面距离表顶端的距离信息确定待更新后台页面所在层级,并基于业务方定义的页面跳转信息,判断待更新后台页面与当前显示页面间的目标跳转关联关系,目标跳转关联关系表征业务逻辑中是否存在当前显示页面跳转至更新后台页面的关联;若存在关联,则发送后台页面更新请求,由业务方确定是否更新,若不更新,保持页面线性表的数据结构,将内存修改仅限制于顶端的当前页面,或者根据当前页面线性表对应的缓存情况执行更新,缓存情况表征是否存在内存溢出(OOM)或内存泄漏等,进而基于业务方定义的方法执行页面更新或页面报错显示(如显示“重新刷新”等);若不存在关联,则拦截后台页面更新请求。如此,交给业务方确定是否需要执行页面更新,在内存不足时降低开销。
具体地,基于页面线性表结构,当页面执行跳转、返回和跳转到指定层级时,通过线性表结构的放入和弹出操作,针对不再会显示的后台页面中的所有对象元素,在应用缓存中执行引用量减量更新,并将相应后台页面对应的页面跳转信息存储至应用缓存中。如此,产生层级较多的页面跳转场景下,实现后台页面的内存回收,以避免未及时回收中间态页面内存所导致的后台执行数据、UI元素更新等,从而避免多余的性能损耗。
一些实施例中,请参考图9,待跳转页面为网页视图页面时,页面处理流程可以为:S11,页面跳转重定向;S12,获取对象元素(缓存Dom节点信息和缓存Dom元素);S13,构造页面栈空间并显示页面;S14,基于runtime进行对象调用拦截;S15,验证Dom元素是否合法,若是,执行S16,若否,执行S17;S16,创建对象元素的引用,S17,对象引用信息置为nil,回收内存空间。
一个实施例中,请参考图3,图3示出了一个移动金融应用程序的页面跳转实例,图中对应移动金融应用程序中账户创建业务的信息识别业务模块。如图所示,页面1为在线开户页面,点击页面1中的图像输入控件11,跳转至页面2,以进行信息输入,识别到存在证件信息输入后,跳转至页面3,以进行信息识别,进而根据识别结果跳转至页面4或页面5,页面4中识别成功后,通过返回按钮41可以直接跳转至页面1,页面5中识别超时后,通过点击重新扫描控件51,跳转至页面2。即上述页面的页面跳转关系为,页面1→页面2→页面3→页面4→页面1,或页面1→页面2→页面3→页面5→页面2。基于该页面跳转信息可以创建上述页面的页面线性表,在显示页面4后,实时回收页面3和页面4的缓存占用,并拦截可能触发的页面3和页面4的后台更新请求,或者在显示页面5后,实时回收页面3的缓存占用,并拦截可能触发的页面3的后台更新请求。
本申请实施例还提供了一种页面处理装置800,如图10所示,图10示出了本申请实施例提供的一种页面处理装置的结构示意图,装置可以包括下述模块。
第一查找模块10:用于响应于针对应用程序的页面跳转请求,从应用程序的应用缓存中查找待跳转页面的缓存页面配置信息,应用缓存用于存储应用程序对应的至少一个页面的页面配置信息和至少一个页面的界面元素;
配置数据生成模块20:用于基于缓存页面配置信息生成待跳转页面的目标配置数据;
界面元素确定模块30:用于基于目标配置数据确定待跳转页面的待加载界面元素;
第二查找模块40:用于在至少一个页面的界面元素中查找与待加载界面元素匹配的缓存界面元素;
跳转页面生成模块50:用于根据目标配置数据和缓存界面元素生成待跳转页面。
一些实施例中,页面跳转请求为对跳转前显示页面中关联至待跳转页面的界面元素进行预设操作触发的;第一查找模块10可以包括:
标识获取单元:用于获取关联至待跳转页面的界面元素的对象类别标识;
配置信息查找单元:用于将应用缓存中与对象类别标识关联存储的页面配置信息确定为缓存页面配置信息。
一些实施例中,应用程序包括至少一个应用业务,应用缓存基于环形缓冲区构建,包括至少一个缓存池,每一应用业务对应至少一个缓存池;界面元素确定模块30可以具体用于:以待跳转页面所属目标应用业务对应的至少一个缓存池为起始,基于环形缓冲区的缓存池指向信息,对应用缓存中的各缓存池进行待加载界面元素的遍历查找,得到缓存界面元素。
一些实施例中,应用缓存中存储有页面配置信息的第一引用信息和界面元素的第二引用信息,第一引用信息表征当前已创建页面对页面配置信息的引用量,第二引用信息表征当前已创建页面对界面元素的引用量;装置还包括:
第一缓存更新模块:用于在根据目标配置数据和缓存界面元素生成待跳转页面之后,响应于待跳转页面的缓存触发,基于待跳转页面的页面配置信息和界面元素,对缓存页面配置信息和缓存界面元素进行缓存更新处理,得到更新的缓存页面配置信息和更新的缓存界面元素;
第一引用更新模块:用于对更新的缓存页面配置信息的第一引用信息和更新的缓存界面元素的第二引用信息进行引用量增量更新。
一些实施例中,装置还包括第二引用更新模块:用于响应于跳转前显示页面的销毁,对跳转前显示页面的页面配置信息的第一引用信息和跳转前显示页面的界面元素的第二引用信息进行引用量减量更新。
一些实施例中,装置还包括:
第一确定模块:用于基于第一引用信息从应用缓存中确定出引用量为空的页面配置信息;
第二确定模块:用于基于第二引用信息从应用缓存中确定出引用量为空的界面元素;
缓存清除模块:用于清除引用量为空的页面配置信息和界面元素。
一些实施例中,应用缓存还用于存储应用程序对应的至少一个网页视图页面的Dom节点信息和至少一个网页视图页面的Dom元素;在待跳转页面为网页视图页面的情况下,若页面跳转请求为重定向请求,装置还包括:
Dom信息查找模块:用于从至少一个网页视图页面的Dom节点信息中查找待跳转页面对应的缓存Dom节点信息;
Dom元素确定模块:用于基于缓存Dom节点信息确定待跳转页面的待加载Dom元素;
Dom元素查找模块:用于从至少一个网页视图页面的Dom元素中查找待跳转页面对应的缓存Dom元素;
网页视图页面生成模块:用于根据缓存Dom节点信息和缓存Dom元素生成待跳转页面。
一些实施例中,应用缓存还存储Dom元素的第三引用信息,第二引用信息表征当前已创建页面对Dom元素的引用量;装置还包括:
第二缓存更新模块:用于在根据缓存Dom节点信息和缓存Dom元素生成待跳转页面之后,响应于待跳转页面的缓存触发,基于待跳转页面的Dom节点信息和Dom元素,对缓存Dom节点信息和缓存Dom元素进行缓存更新处理,得到更新的缓存Dom节点信息和更新的缓存Dom元素;
合法性验证模块:用于对更新的缓存Dom元素进行合法性验证,得到元素验证结果;
第三引用更新模块:用于若元素验证结果为验证合法,对更新的缓存Dom元素的第三引用信息进行应引用量增量更新。
一些实施例中,合法性验证模块可以包括:
调用拦截单元:用于基于待跳转页面的网页视图线程对更新的缓存Dom元素进行对象引用的调用拦截;
验证单元:用于基于待跳转页面对应的业务方验证信息对更新的缓存Dom元素进行合法性验证,得到元素验证结果。
一些实施例中,应用业务包括至少一个业务模块,装置还包括:
页面距离信息确定模块:用于响应于目标业务模块的后台页面更新请求,基于目标业务模块的页面线性表确定待更新后台页面与当前显示页面间的距离信息,页面线性表中的表元素关联目标业务模块对应的后台页面和当前显示页面;
跳转关联确定模块:用于基于距离信息和目标业务模块对应的页面跳转信息,确定待更新后台页面和当前显示页面间的目标跳转关联关系,页面跳转信息包括目标业务模块对应的后台页面和跳转前显示页面间的跳转关联关系;
更新请求拦截模块:用于若目标跳转关联关系为不存在跳转关联,拦截后台页面更新请求。
一些实施例中,装置还包括:
第一控制器创建模块:用于响应于应用程序中目标应用业务的触发,创建目标应用业务对应的基类控制器;
第二控制器创建模块:用于响应于目标应用业务中目标业务模块的触发,基于基类控制器创建目标业务模块对应的业务控制器,业务控制器继承自目标应用业务对应的基类控制器;
其中,基类控制器包括应用业务中至少一个业务模块对应的公共页面数据,业务控制器包括业务模块的至少一个页面的页面数据。
需要说明的是,上述装置实施例与方法实施例基于相同的实施方式。
本申请实施例提供了一种页面处理设备,该调度设备可以为终端或服务器,包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的页面处理方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及页面处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置等电子设备中执行。图11是本申请实施例提供的一种页面处理方法的电子设备的硬件结构框图。如图11所示,该电子设备900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)910(处理器910可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器930,一个或一个以上存储应用程序923或数据922的存储介质920(例如一个或一个以上海量存储设备)。其中,存储器930和存储介质920可以是短暂存储或持久存储。存储在存储介质920的程序可以包括一个或一个以上模块,每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器910可以设置为与存储介质920通信,在电子设备900上执行存储介质920中的一系列指令操作。电子设备900还可以包括一个或一个以上电源960,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口940,和/或,一个或一个以上操作系统921,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口940可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备900的通信供应商提供的无线网络。在一个实例中,输入输出接口940包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口940可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图11所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备900还可包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。
本申请的实施例还提供了一种计算机可读存储介质,存储介质可设置于电子设备之中以保存用于实现方法实施例中一种页面处理方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的页面处理方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
由上述本申请提供的页面处理方法、装置、设备、服务器、终端、存储介质和程序产品的实施例可见,本申请的技术方案响应于针对应用程序的页面跳转请求,从应用程序的应用缓存中查找待跳转页面的缓存页面配置信息,应用缓存用于存储应用程序对应的至少一个页面的页面配置信息和至少一个页面的界面元素;基于缓存页面配置信息生成待跳转页面的目标配置数据;基于目标配置数据确定待跳转页面的待加载界面元素;在至少一个页面的界面元素中查找与待加载界面元素匹配的缓存界面元素;根据目标配置数据和缓存界面元素生成待跳转页面。通过创建应用程序的缓存区,能够对应用程序对应的已创建页面的数据进行存储,并在应用缓存中以页面配置信息和界面元素为存储和查找粒度,实现程序内的页面对象的单独复用,避免不同页面中相同页面对象的冗余存储,降低存储资源占用,且能够以页面配置信息和界面元素为粒度进行缓存的动态清理,优化缓存机制;同时,在页面加载过程中,先基于缓存页面配置信息生成页面的配置数据,提供页面配置更新时机,以在页面存在对象变更的情况下,确保待加载界面元素的准确性,进而避免不同页面跳转时机下跳转页面的创建错误,实现对象变更页面的数据复用和页面变更,无需重新创建整体页面,提高页面跳转效率。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种页面处理方法,其特征在于,所述方法包括:
响应于针对应用程序的页面跳转请求,从所述应用程序的应用缓存中查找待跳转页面的缓存页面配置信息,所述应用缓存用于存储所述应用程序对应的至少一个页面的页面配置信息和所述至少一个页面的界面元素;
基于所述缓存页面配置信息生成所述待跳转页面的目标配置数据;
基于所述目标配置数据确定所述待跳转页面的待加载界面元素;
在所述至少一个页面的界面元素中查找与所述待加载界面元素匹配的缓存界面元素;
根据所述目标配置数据和所述缓存界面元素生成所述待跳转页面。
2.根据权利要求1所述的方法,其特征在于,所述页面跳转请求为对跳转前显示页面中关联至所述待跳转页面的界面元素进行预设操作触发的;所述从所述应用程序的应用缓存中查找待跳转页面的缓存页面配置信息包括:
获取所述关联至所述待跳转页面的界面元素的对象类别标识;
将所述应用缓存中与所述对象类别标识关联存储的页面配置信息确定为所述缓存页面配置信息。
3.根据权利要求1所述的方法,其特征在于,所述应用程序包括至少一个应用业务,所述应用缓存基于环形缓冲区构建,包括至少一个缓存池,每一应用业务对应至少一个缓存池;所述在所述至少一个页面的界面元素中查找与所述待加载界面元素匹配的缓存界面元素包括:
以所述待跳转页面所属目标应用业务对应的至少一个缓存池为起始,基于所述环形缓冲区的缓存池指向信息,对所述应用缓存中的各缓存池进行所述待加载界面元素的遍历查找,得到所述缓存界面元素。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述应用缓存中存储有所述页面配置信息的第一引用信息和所述界面元素的第二引用信息,所述第一引用信息表征当前已创建页面对所述页面配置信息的引用量,所述第二引用信息表征所述当前已创建页面对所述界面元素的引用量;在所述根据所述目标配置数据和所述缓存界面元素生成所述待跳转页面之后,所述方法还包括:
响应于所述待跳转页面的缓存触发,基于所述待跳转页面的页面配置信息和界面元素,对所述缓存页面配置信息和所述缓存界面元素进行缓存更新处理,得到更新的缓存页面配置信息和更新的缓存界面元素;
对所述更新的缓存页面配置信息的第一引用信息和所述更新的缓存界面元素的第二引用信息进行引用量增量更新。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于跳转前显示页面的销毁,对所述跳转前显示页面的页面配置信息的第一引用信息和所述跳转前显示页面的界面元素的第二引用信息进行引用量减量更新。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
基于所述第一引用信息从所述应用缓存中确定出引用量为空的页面配置信息;
基于所述第二引用信息从所述应用缓存中确定出引用量为空的界面元素;
清除所述引用量为空的页面配置信息和界面元素。
7.根据权利要求1-3中任一项所述的方法,其特征在于,所述应用缓存还用于存储所述应用程序对应的至少一个网页视图页面的Dom节点信息和所述至少一个网页视图页面的Dom元素;在所述待跳转页面为网页视图页面的情况下,若所述页面跳转请求为重定向请求,所述方法还包括:
从所述至少一个网页视图页面的Dom节点信息中查找所述待跳转页面对应的缓存Dom节点信息;
基于所述缓存Dom节点信息确定所述待跳转页面的待加载Dom元素;
从所述至少一个网页视图页面的Dom元素中查找所述待跳转页面对应的缓存Dom元素;
根据所述缓存Dom节点信息和所述缓存Dom元素生成所述待跳转页面。
8.根据权利要求7所述的方法,其特征在于,所述应用缓存还存储所述Dom元素的第三引用信息,所述第二引用信息表征当前已创建页面对所述Dom元素的引用量;在所述根据所述缓存Dom节点信息和所述缓存Dom元素生成所述待跳转页面之后,所述方法还包括:
响应于所述待跳转页面的缓存触发,基于所述待跳转页面的Dom节点信息和Dom元素,对所述缓存Dom节点信息和所述缓存Dom元素进行缓存更新处理,得到更新的缓存Dom节点信息和更新的缓存Dom元素;
对所述更新的缓存Dom元素进行合法性验证,得到元素验证结果;
若所述元素验证结果为验证合法,对所述更新的缓存Dom元素的第三引用信息进行应引用量增量更新。
9.根据权利要求8所述的方法,其特征在于,所述对所述更新的缓存Dom元素进行合法性验证,得到元素验证结果包括:
基于所述待跳转页面的网页视图线程对所述更新的缓存Dom元素进行对象引用的调用拦截;
基于所述待跳转页面对应的业务方验证信息对所述更新的缓存Dom元素进行合法性验证,得到所述元素验证结果。
10.根据权利要求1-3中任一项所述的方法,其特征在于,应用业务包括至少一个业务模块,所述方法还包括:
响应于目标业务模块的后台页面更新请求,基于所述目标业务模块的页面线性表确定待更新后台页面与当前显示页面间的距离信息,所述页面线性表中的表元素关联所述目标业务模块对应的后台页面和所述当前显示页面;
基于所述距离信息和所述目标业务模块对应的页面跳转信息,确定所述待更新后台页面和所述当前显示页面间的目标跳转关联关系,所述页面跳转信息包括所述目标业务模块对应的后台页面和所述跳转前显示页面间的跳转关联关系;
若所述目标跳转关联关系为不存在跳转关联,拦截所述后台页面更新请求。
11.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:响应于所述应用程序中目标应用业务的触发,创建所述目标应用业务对应的基类控制器;
响应于所述目标应用业务中目标业务模块的触发,基于所述基类控制器创建所述目标业务模块对应的业务控制器,所述业务控制器继承自所述目标应用业务对应的基类控制器;
其中,所述基类控制器包括所述应用业务中至少一个业务模块对应的公共页面数据,所述业务控制器包括所述业务模块的至少一个页面的页面数据。
12.一种页面处理装置,其特征在于,所述装置包括:
第一查找模块:用于响应于针对应用程序的页面跳转请求,从所述应用程序的应用缓存中查找待跳转页面的缓存页面配置信息,所述应用缓存用于存储所述应用程序对应的至少一个页面的页面配置信息和所述至少一个页面的界面元素;
配置数据生成模块:用于基于所述缓存页面配置信息生成所述待跳转页面的目标配置数据;
界面元素确定模块:用于基于所述目标配置数据确定所述待跳转页面的待加载界面元素;
第二查找模块:用于在所述至少一个页面的界面元素中查找与所述待加载界面元素匹配的缓存界面元素;
跳转页面生成模块:用于根据所述目标配置数据和所述缓存界面元素生成所述待跳转页面。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-11中任一项所述的页面处理方法。
14.一种计算机设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-11中任一项所述的页面处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211361418.6A CN118034822A (zh) | 2022-11-02 | 2022-11-02 | 页面处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211361418.6A CN118034822A (zh) | 2022-11-02 | 2022-11-02 | 页面处理方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118034822A true CN118034822A (zh) | 2024-05-14 |
Family
ID=91000874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211361418.6A Pending CN118034822A (zh) | 2022-11-02 | 2022-11-02 | 页面处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118034822A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118656166A (zh) * | 2024-08-19 | 2024-09-17 | 广州佳新智能科技有限公司 | 场景金融大数据的处理方法及装置 |
-
2022
- 2022-11-02 CN CN202211361418.6A patent/CN118034822A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118656166A (zh) * | 2024-08-19 | 2024-09-17 | 广州佳新智能科技有限公司 | 场景金融大数据的处理方法及装置 |
CN118656166B (zh) * | 2024-08-19 | 2024-11-26 | 广州佳新智能科技有限公司 | 场景金融大数据的处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107450903B (zh) | 一种信息处理方法及装置 | |
US9742860B2 (en) | Bi-temporal key value cache system | |
US10678482B2 (en) | Multi-tier data synchronizer based on concurrent linked list | |
CN112149032B (zh) | 广告拦截方法及装置 | |
CN107103011B (zh) | 终端数据搜索的实现方法和装置 | |
CN109522751B (zh) | 访问权限控制方法、装置、电子设备及计算机可读介质 | |
CN110784498B (zh) | 一种个性化数据容灾方法及装置 | |
CN111652685A (zh) | 信息处理方法、装置、计算机设备及计算机可读存储介质 | |
CN112559717A (zh) | 搜索匹配方法、装置、电子设备以及存储介质 | |
CN112199200B (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
CN112464625A (zh) | 单据生成方法、装置、计算机设备和存储介质 | |
US9965812B2 (en) | Generating a supplemental description of an entity | |
CN118034822A (zh) | 页面处理方法、装置、设备和存储介质 | |
CN111694639A (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN114070847B (zh) | 服务器的限流方法、装置、设备及存储介质 | |
WO2019237949A1 (zh) | 搜索方法及装置 | |
CN116304079A (zh) | 基于时序的图谱数据管理方法、设备和可读存储介质 | |
CN111339245B (zh) | 数据存储方法、装置、存储介质及设备 | |
CN112181391B (zh) | 一种可动态扩展数据的方法及系统 | |
CN113157722B (zh) | 一种数据处理方法、装置、服务器、系统及存储介质 | |
US11416468B2 (en) | Active-active system index management | |
CN115221559A (zh) | 数据账户的访问授权方法及装置 | |
CN113377378A (zh) | 用于小程序的处理方法、装置、设备及存储介质 | |
CN113761102A (zh) | 数据处理方法、装置、服务器、系统和存储介质 | |
CN115373831A (zh) | 数据处理方法、装置以及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |