CN111625239B - Spa中更新虚拟页面实例状态的方法和装置 - Google Patents
Spa中更新虚拟页面实例状态的方法和装置 Download PDFInfo
- Publication number
- CN111625239B CN111625239B CN202010388536.0A CN202010388536A CN111625239B CN 111625239 B CN111625239 B CN 111625239B CN 202010388536 A CN202010388536 A CN 202010388536A CN 111625239 B CN111625239 B CN 111625239B
- Authority
- CN
- China
- Prior art keywords
- instance
- virtual page
- spa
- memory
- page instance
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing 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)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种SPA中更新虚拟页面实例状态方法和装置,该方法包括:接收用户的页面请求,创建SPA的虚拟页面实例;接收SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储;若接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态。本发明实施例提供的方法和装置,实现了无论虚拟页面实例的存储方式对SPA中所有虚拟页面实例状态进行更新且SPA中虚拟页面实例的存储合理利用了内存。
Description
技术领域
本发明涉及单页应用程序技术领域,尤其涉及一种SPA中更新虚拟页面实例状态的方法和装置。
背景技术
在现代业务单页应用程序中,无法避免复杂的情况,越来越多的用户交互将导致更多的内存使用。尤其移动设备的所有资源都受到限制,并且内存与所有正在运行的应用程序/操作***(OS)共享。
在单页应用程序(SPA)中,所有UI都在一个浏览器窗口中,无法从OS内存管理中受益,如果没有足够的***内存来支持SPA保持正确的状态,SPA可能会崩溃,最终用户可能无法获得更好的用户体验。从浏览器的角度来看,它只能在内存不足时触发垃圾回收,但对于SPA必须使用更多的内存却无法进行垃圾回收这一事实没有任何帮助。
目前的SPA中存在的一个问题是,内存中能够存储的页面是有限的,因此,有些页面需要存储于除了内存的其他的位置,而当某一页面的内容由于用户操作有更新时需要更新所有与该页面有关联的页面的对应内容,但是现有的SPA仅支持更新内存中存储的与该页面有关联的页面,对于存储于非内存的其他存储器的页面状态无法做到实时更新。
因此,如何避免现有的SPA中所有虚拟页面实例状态的更新被存储位置所限制,且SPA中虚拟页面实例的存储没有合理利用内存的情况,仍然是本领域技术人员亟待解决的问题。
发明内容
本发明实施例提供一种SPA中更新虚拟页面实例状态的方法和装置,用以实现了无论虚拟页面实例的存储方式对SPA中所有虚拟页面实例状态进行更新且SPA中虚拟页面实例的存储合理利用了内存。
第一方面,本发明实施例提供一种SPA中更新虚拟页面实例状态的方法,包括:
接收用户的页面请求,创建SPA的虚拟页面实例;
接收SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储;
若接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态。
优选地,该方法中,所述创建SPA的虚拟页面实例,具体包括:
若所述页面请求未被实例化,则下载资源创建第一UI样式实例和第一UI域实例,构建与所述第一UI样式实例和所述第一UI域实例匹配的第一状态数据实例,基于所述第一UI样式实例、所述第一UI域实例和所述第一状态数据实例创建虚拟页面实例,所述资源包括UI域模型、虚拟页面js和虚拟页面样式;
若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于外部存储器,则从外部存储器恢复所述虚拟页面的UI域数据和状态数据,基于所述UI域数据和状态数据构建第二UI域实例和第二状态数据实例,构建与所述第二UI域实例和所述第二状态数据实例匹配的第二UI样式实例,基于所述第二UI样式实例、所述第二UI域实例和所述第二状态数据实例创建虚拟页面实例;
若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于后台内部存储器,则直接切换至所述虚拟页面实例。
优选地,该方法中,所述接收SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储,具体包括:
若所述虚拟页面实例为用户正在使用实例,则所述虚拟页面实例的存储方式为前台内部存储器存储;
若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存不足,则所述虚拟页面实例的存储方式为外部存储器存储;
若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存充足,则所述虚拟页面实例的存储方式为后台内部存储器存储;
所述SPA中内存监控器装置的实时检测结果为当前内存不足,具体包括:
SPA中内存监控器装置的实时检测结果为***存在内部存储器不足警告或者内部存储器中虚拟页面实例的数量超过预设阈值。
优选地,该方法中,所述采用外部存储器存储所述虚拟页面实例,具体包括:
基于应用平台确定外部存储器类型;
将所述虚拟页面实例拆分为UI域数据和状态数据;
将所述UI域数据和状态数据存入所述外部存储器;
将所述虚拟页面实例的关联信息从内部存储器清除;
所述基于应用平台确定外部存储器类型,具体包括:
若应用平台为浏览器,则外部存储器的类型为局部存储器或者索引数据库;
若应用平台为混合移动应用,则外部存储器为本机存储器。
优选地,该方法中,所述若接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态,具体包括:
若订阅通知服务的虚拟页面实例存储于前台内部存储器,则基于所述中间输入更新订阅通知服务的虚拟页面实例的UI域数据、状态数据和UI渲染;
若订阅通知服务的虚拟页面实例存储于后台内部存储器或外部存储器,则基于所述中间输入更新所述虚拟页面实例的UI域数据和状态数据,无需UI渲染更新。
第二方面,本发明实施例提供一种SPA中更新虚拟页面实例状态的装置,其特征在于,包括:
接收单元,用于创建SPA的虚拟页面实例;
调配单元,用于接收SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储;
更新单元,用于若接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态。
优选地,该装置中,所述创建SPA的虚拟页面实例,具体包括:
若所述页面请求未被实例化,则下载资源创建第一UI样式实例和第一UI域实例,构建与所述第一UI样式实例和所述第一UI域实例匹配的第一状态数据实例,基于所述第一UI样式实例、所述第一UI域实例和所述第一状态数据实例创建虚拟页面实例,所述资源包括UI域模型、虚拟页面js和虚拟页面样式;
若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于外部存储器,则从外部存储器恢复所述虚拟页面的UI域数据和状态数据,基于所述UI域数据和状态数据构建第二UI域实例和第二状态数据实例,构建与所述第二UI域实例和所述第二状态数据实例匹配的第二UI样式实例,基于所述第二UI样式实例、所述第二UI域实例和所述第二状态数据实例创建虚拟页面实例;
若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于后台内部存储器,则直接切换至所述虚拟页面实例。
优选地,该装置中,所述调配单元,具体用于:
若所述虚拟页面实例为用户正在使用实例,则所述虚拟页面实例的存储方式为前台内部存储器存储;
若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存不足,则所述虚拟页面实例的存储方式为外部存储器存储;
若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存充足,则所述虚拟页面实例的存储方式为后台内部存储器存储;
所述SPA中内存监控器装置的实时检测结果为当前内存不足,具体包括:
SPA中内存监控器装置的实时检测结果为***存在内部存储器不足警告或者内部存储器中虚拟页面实例的数量超过预设阈值。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的SPA中更新虚拟页面实例状态方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的SPA中更新虚拟页面实例状态方法的步骤。
本发明实施例提供的方法和装置,通过在接收用户的页面请求时,创建SPA的虚拟页面实例;然后根据SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储;当接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态。如此,可以达到对虚拟页面实例存储于内部存储器还是外部存储器的调配,还根据订阅通知服务的虚拟页面实例的存储方式对订阅通知服务的虚拟页面进行更新的目的。因此,本发明实施例提供的方法和装置,实现了无论虚拟页面实例的存储方式对SPA中所有虚拟页面实例状态进行更新且SPA中虚拟页面实例的存储合理利用了内存。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的SPA中更新虚拟页面实例状态的方法的流程示意图;
图2为本发明实施例提供的创建虚拟页面实例的流程示意图;
图3为本发明实施例提供的虚拟页面实例的存储状态转换图;
图4为本发明实施例提供的SPA中更新虚拟页面实例状态的装置的结构示意图;
图5为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的SPA中普遍存在所有虚拟页面实例状态的更新被存储位置所限制,且SPA中虚拟页面实例的存储没有合理利用内存的问题。对此,本发明实施例提供了一种SPA中更新虚拟页面实例状态的方法。图1为本发明实施例提供的SPA中更新虚拟页面实例状态的方法的流程示意图,如图1所示,该方法的执行主体为SPA中的一个装置,该方法包括:
步骤110,接收用户的页面请求,创建SPA的虚拟页面实例。
具体地,当SPA中更新虚拟页面实例状态的装置(该装置可被称为导航容器装置)接收到用户的页面请求时,该装置首先要将该页面请求对应的虚拟页面实例创建出来。对于SPA中的虚拟页面实例,分为三个类型:第一个类型的虚拟页面实例存储于前台内部存储器,即该虚拟页面实例在当前屏幕的应用程序上可见;第二个类型的虚拟页面实例存储于后台内部存储器,在当前应用程序状态下不可见,但是通常和当前应用程序显示的页面联系紧密,比如是当前页面的前一页或者后一页,它也存在于内部存储器,用于与当前页面之间的快速切换;第三个类型的虚拟页面实例存储于外部存储器,属于不经常会被用户请求的虚拟页面实例类型。当发生用户的页面请求时,SPA中更新虚拟页面实例状态的装置会根据该页面请求是否已经被实例化的情况来创建对应的虚拟页面实例,若该页面请求未被实例化,则下载资源创建虚拟页面实例;若该页面请求被实例化,则从存储的被实例化后的虚拟页面实例的数据内容中恢复出该虚拟页面实例。
步骤120,接收SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储。
具体地,要确定虚拟页面实例的存储方式需要考虑内部存储器的状态,而内部存储器的状态由SPA中内存监控器装置进行实时监控,若虚拟页面实例为用户正在使用实例,则该虚拟页面实例的存储方式为前台内部存储器存储,若虚拟页面实例非用户正在使用实例但是内部存储器空间充足,则该虚拟页面实例的存储方式为后台内部存储器存储,若虚拟页面实例非用户正在使用实例且内部存储器空间不足,则该虚拟页面实例的存储方式为外部存储器存储。因此,SPA中更新虚拟页面实例状态的装置会根据内存的实时占用状态,将虚拟页面实例在各存储位置之间调配。
步骤130,若接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态。
具体地,当接收到用户的中间输入,所述中间输入包括用户在当前页面的某个输入框进行输入或者点击当前页面的某个链接,则SPA中更新虚拟页面实例状态的装置会命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息。此处需要说明的是,目前默认所有虚拟页面实例在最初创建时就会订阅通知服务,且虚拟页面实例的订阅状态不会随着它的存储方式的转变而改变。然后SPA中更新虚拟页面实例状态的装置会根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态,不同的存储方式存储的虚拟页面实例的存储内容并不相同,因此,对虚拟页面实例状态进行更新时,由于不同虚拟页面实例的存储方式会对虚拟页面实例的不同内容进行更新,例如,前台内部存储器存储的虚拟页面实例由于正在显示必然存在渲染,因此,更新时需要更新UI渲染,而后台内部存储器和外部存储器存储的虚拟页面实例没有显示故没有渲染,因此,无需更新UI渲染。
本发明实施例提供的方法,通过在接收用户的页面请求时,创建SPA的虚拟页面实例;然后根据SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储;当接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态。如此,可以达到对虚拟页面实例存储于内部存储器还是外部存储器的调配,还根据订阅通知服务的虚拟页面实例的存储方式对订阅通知服务的虚拟页面进行更新的目的。因此,本发明实施例提供的方法,实现了无论虚拟页面实例的存储方式对SPA中所有虚拟页面实例状态进行更新且SPA中虚拟页面实例的存储合理利用了内存。
基于上述实施例,该方法中,所述创建SPA的虚拟页面实例,具体包括:
若所述页面请求未被实例化,则下载资源创建第一UI样式实例和第一UI域实例,构建与所述第一UI样式实例和所述第一UI域实例匹配的第一状态数据实例,基于所述第一UI样式实例、所述第一UI域实例和所述第一状态数据实例创建虚拟页面实例,所述资源包括UI域模型、虚拟页面js和虚拟页面样式;
若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于外部存储器,则从外部存储器恢复所述虚拟页面的UI域数据和状态数据,基于所述UI域数据和状态数据构建第二UI域实例和第二状态数据实例,构建与所述第二UI域实例和所述第二状态数据实例匹配的第二UI样式实例,基于所述第二UI样式实例、所述第二UI域实例和所述第二状态数据实例创建虚拟页面实例;
若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于后台内部存储器,则直接切换至所述虚拟页面实例。
具体地,图2为本发明实施例提供的创建虚拟页面实例的流程示意图,如图2所示,首先创建页面请求对应的虚拟页面,若所述虚拟页面被实例化,即若所述页面请求被实例化,则下载资源,利用所述资源创建第一UI样式实例和第一UI域实例,并且构建与所述第一UI样式实例和所述第一UI域实例匹配的第一状态数据实例,最后基于所述第一UI样式实例、所述第一UI域实例和所述第一状态数据实例创建虚拟页面实例,而所述资源包括UI域模型、虚拟页面js和虚拟页面样式;
若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于外部存储器,则从外部存储器恢复页面,即回复页面内容中的UI域数据和状态数据,基于所述UI域数据和状态数据构建第二UI域实例和第二状态数据实例,并且构建与所述第二UI域实例和所述第二状态数据实例匹配的第二UI样式实例,最后基于所述第二UI样式实例、所述第二UI域实例和所述第二状态数据实例创建虚拟页面实例;
若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于后台内部存储器,则直接切换至所述虚拟页面实例即可。
此处,对虚拟页面的构成进行介绍,一个虚拟页面可以拆分为UI域模型、虚拟页面模型、数据模型和样式,其中,所述UI域模型,用于HTML呈现域语言,其主要功能是可以序列化,并且可以通过绑定机制设置数据和事件侦听器;所述虚拟页面模型,是虚拟页面级别的UI逻辑,包括UI交互处理程序和数据绑定,最后通过更改UI域模型来更新UI;数据模型,它是服务响应中的JSON对象,可以在虚拟页面模型中使用;样式是一种虚拟页面范围的CSS,可以通过页面状态添加和删除。
基于上述任一实施例,该方法中,所述所述接收SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储,具体包括:
若所述虚拟页面实例为用户正在使用实例,则所述虚拟页面实例的存储方式为前台内部存储器存储;
若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存不足,则所述虚拟页面实例的存储方式为外部存储器存储;
若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存充足,则所述虚拟页面实例的存储方式为后台内部存储器存储;
所述SPA中内存监控器装置的实时检测结果为当前内存不足,具体包括:
SPA中内存监控器装置的实时检测结果为***存在内部存储器不足警告或者内部存储器中虚拟页面实例的数量超过预设阈值。
具体地,图3为本发明实施例提供的虚拟页面实例的存储状态转换图,如图3所示,图3中的三种状态visible(可见状态)、invisible(不可见状态)和persisted(持久状态)分别对应于虚拟页面实例存储于前台内部存储器、后台内部存储器和外部存储器的三种存储方式下的虚拟页面实例的状态。图3中的箭头也表示了各状态之间的转换方向。当一个虚拟页面实例的状态需要改变时,需要结合考虑所述虚拟页面实例是否正在被用户使用和当前内存的情况,若所述虚拟页面实例为用户正在使用实例,则所述虚拟页面实例的存储方式为前台内部存储器存储;若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存不足,则所述虚拟页面实例的存储方式为外部存储器存储;若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存充足,则所述虚拟页面实例的存储方式为后台内部存储器存储。而SPA中内存监控器装置对内存的实时监控的结果的确定方法是监听***的内存不足警告和监测内存中的虚拟页面实例的数量是否超过最大值,只要其中一个情况发生,比如发生***的内存不足警告或者检测到的内存中的虚拟页面实例的数量是否超过预设最大值,则判断内存的实时监控的结果需要上报给SPA中更新虚拟页面实例状态的装置,以使其对虚拟页面实例的存储方式作出决定。
基于上述任一实施例,该方法中,所述采用外部存储器存储所述虚拟页面实例,具体包括:
基于应用平台确定外部存储器类型;
将所述虚拟页面实例拆分为UI域数据和状态数据;
将所述UI域数据和状态数据存入所述外部存储器;
将所述虚拟页面实例的关联信息从内部存储器清除;
所述基于应用平台确定外部存储器类型,具体包括:
若应用平台为浏览器,则外部存储器的类型为局部存储器或者索引数据库;
若应用平台为混合移动应用,则外部存储器为本机存储器。
具体地,确定所述虚拟页面实例需要采用外部存储器进行存储后,需要基于当前的SPA的应用平台选定外部存储器类型。不同的应用平台对应的外部存储器的类型并不相同,对于浏览器应用平台,采用的外部存储器为局部存储器(local storage)或者索引数据库(indexed DB),而对于混合移动应用平台,采用的外部存储器为本机存储器(nativestorage)。然后,将虚拟页面实例拆分可以存储于外部存储器的内容数据,所述内容数据为UI域数据和状态数据;将所述UI域数据和状态数据作为内容,虚拟页面实例的名称或者ID或者其他能唯一识别该虚拟页面实例的标识作为索引存入外部存储器,在外部存储器存放完成后,再将该虚拟页面实例的关联信息从内部存储器清除,将其所占用的内存空间彻底释放。
基于上述任一实施例,该方法中,所述根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态,具体包括:
若订阅通知服务的虚拟页面实例存储于前台内部存储器,则基于所述中间输入更新订阅通知服务的虚拟页面实例的UI域数据、状态数据和UI渲染;
若订阅通知服务的虚拟页面实例存储于后台内部存储器或外部存储器,则基于所述中间输入更新所述虚拟页面实例的UI域数据和状态数据,无需UI渲染更新。
具体地,不同的虚拟页面实例的存储方式对虚拟页面实例存储的内容也不同,例如,若订阅通知服务的虚拟页面实例存储于前台内部存储器,则基于所述中间输入更新订阅通知服务的虚拟页面实例的UI域数据、状态数据和UI渲染;若订阅通知服务的虚拟页面实例存储于后台内部存储器或外部存储器,则基于所述中间输入更新所述虚拟页面实例的UI域数据和状态数据,无需UI渲染更新。
基于上述任一实施例,本发明实施例提供一种SPA中更新虚拟页面实例状态的装置,图4为本发明实施例提供的SPA中更新虚拟页面实例状态的装置的结构示意图。如图4所示,该装置包括接收单元410、调配单元420和更新单元430,其中,
所述接收单元410,用于创建SPA的虚拟页面实例;
所述调配单元420,用于接收SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储;
所述更新单元430,用于若接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态。
本发明实施例提供的装置,通过在接收用户的页面请求时,创建SPA的虚拟页面实例;然后根据SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储;当接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态。如此,可以达到对虚拟页面实例存储于内部存储器还是外部存储器的调配,还根据订阅通知服务的虚拟页面实例的存储方式对订阅通知服务的虚拟页面进行更新的目的。因此,本发明实施例提供的装置,实现了无论虚拟页面实例的存储方式对SPA中所有虚拟页面实例状态进行更新且SPA中虚拟页面实例的存储合理利用了内存。
基于上述任一实施例,该装置中,所述创建SPA的虚拟页面实例,具体包括:
若所述页面请求未被实例化,则下载资源创建第一UI样式实例和第一UI域实例,构建与所述第一UI样式实例和所述第一UI域实例匹配的第一状态数据实例,基于所述第一UI样式实例、所述第一UI域实例和所述第一状态数据实例创建虚拟页面实例,所述资源包括UI域模型、虚拟页面js和虚拟页面样式;
若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于外部存储器,则从外部存储器恢复所述虚拟页面的UI域数据和状态数据,基于所述UI域数据和状态数据构建第二UI域实例和第二状态数据实例,构建与所述第二UI域实例和所述第二状态数据实例匹配的第二UI样式实例,基于所述第二UI样式实例、所述第二UI域实例和所述第二状态数据实例创建虚拟页面实例;
若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于后台内部存储器,则直接切换至所述虚拟页面实例。
基于上述任一实施例,该装置中,所述调配单元,具体用于,
若所述虚拟页面实例为用户正在使用实例,则所述虚拟页面实例的存储方式为前台内部存储器存储;
若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存不足,则所述虚拟页面实例的存储方式为外部存储器存储;
若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存充足,则所述虚拟页面实例的存储方式为后台内部存储器存储;
所述SPA中内存监控器装置的实时检测结果为当前内存不足,具体包括:
SPA中内存监控器装置的实时检测结果为***存在内部存储器不足警告或者内部存储器中虚拟页面实例的数量超过预设阈值。
基于上述任一实施例,该装置中,
采用外部存储器存储所述虚拟页面实例,具体包括:
基于应用平台确定外部存储器类型;
将所述虚拟页面实例拆分为UI域数据和状态数据;
将所述UI域数据和状态数据存入所述外部存储器;
将所述虚拟页面实例的关联信息从内部存储器清除;
所述基于应用平台确定外部存储器类型,具体包括:
若应用平台为浏览器,则外部存储器的类型为局部存储器或者索引数据库;
若应用平台为混合移动应用,则外部存储器为本机存储器。
基于上述任一实施例,该装置中,所述根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态,具体包括:
若订阅通知服务的虚拟页面实例存储于前台内部存储器,则基于所述中间输入更新订阅通知服务的虚拟页面实例的UI域数据、状态数据和UI渲染;
若订阅通知服务的虚拟页面实例存储于后台内部存储器或外部存储器,则基于所述中间输入更新所述虚拟页面实例的UI域数据和状态数据,无需UI渲染更新。
图5为本发明实施例提供的电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)501、通信接口(Communications Interface)502、存储器(memory)503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。处理器501可以调用存储在存储器503上并可在处理器501上运行的计算机程序,以执行上述各实施例提供的SPA中更新虚拟页面实例状态的方法,例如包括:接收用户的页面请求,创建SPA的虚拟页面实例;接收SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储;若接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态。
此外,上述的存储器503中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的SPA中更新虚拟页面实例状态的方法,例如包括:接收用户的页面请求,创建SPA的虚拟页面实例;接收SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储;若接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态。
以上所描述的***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种SPA中更新虚拟页面实例状态的方法,其特征在于,包括:
接收用户的页面请求,创建SPA的虚拟页面实例;
接收SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储;
若接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态;
其中,所述创建SPA的虚拟页面实例,具体包括:
若所述页面请求未被实例化,则下载资源创建第一UI样式实例和第一UI域实例,构建与所述第一UI样式实例和所述第一UI域实例匹配的第一状态数据实例,基于所述第一UI样式实例、所述第一UI域实例和所述第一状态数据实例创建虚拟页面实例,所述资源包括UI域模型、虚拟页面js和虚拟页面样式;
若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于外部存储器,则从外部存储器恢复所述虚拟页面的UI域数据和状态数据,基于所述UI域数据和状态数据构建第二UI域实例和第二状态数据实例,构建与所述第二UI域实例和所述第二状态数据实例匹配的第二UI样式实例,基于所述第二UI样式实例、所述第二UI域实例和所述第二状态数据实例创建虚拟页面实例;
若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于后台内部存储器,则直接切换至所述虚拟页面实例。
2.根据权利要求1所述的SPA中更新虚拟页面实例状态的方法,其特征在于,所述接收SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储,具体包括:
若所述虚拟页面实例为用户正在使用实例,则所述虚拟页面实例的存储方式为前台内部存储器存储;
若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存不足,则所述虚拟页面实例的存储方式为外部存储器存储;
若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存充足,则所述虚拟页面实例的存储方式为后台内部存储器存储;
所述SPA中内存监控器装置的实时检测结果为当前内存不足,具体包括:
SPA中内存监控器装置的实时检测结果为***存在内部存储器不足警告或者内部存储器中虚拟页面实例的数量超过预设阈值。
3.根据权利要求2所述的SPA中更新虚拟页面实例状态的方法,其特征在于,采用外部存储器存储所述虚拟页面实例,具体包括:
基于应用平台确定外部存储器类型;
将所述虚拟页面实例拆分为UI域数据和状态数据;
将所述UI域数据和状态数据存入所述外部存储器;
将所述虚拟页面实例的关联信息从内部存储器清除;
所述基于应用平台确定外部存储器类型,具体包括:
若应用平台为浏览器,则外部存储器的类型为局部存储器或者索引数据库;
若应用平台为混合移动应用,则外部存储器为本机存储器。
4.根据权利要求1所述的SPA中更新虚拟页面实例状态的方法,其特征在于,所述根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态,具体包括:
若订阅通知服务的虚拟页面实例存储于前台内部存储器,则基于所述中间输入更新订阅通知服务的虚拟页面实例的UI域数据、状态数据和UI渲染;
若订阅通知服务的虚拟页面实例存储于后台内部存储器或外部存储器,则基于所述中间输入更新所述虚拟页面实例的UI域数据和状态数据,无需UI渲染更新。
5.一种SPA中更新虚拟页面实例状态的装置,其特征在于,包括:
接收单元,用于若接收的用户的页面请求未被实例化,则下载资源创建第一UI样式实例和第一UI域实例,构建与所述第一UI样式实例和所述第一UI域实例匹配的第一状态数据实例,基于所述第一UI样式实例、所述第一UI域实例和所述第一状态数据实例创建虚拟页面实例,所述资源包括UI域模型、虚拟页面js和虚拟页面样式;若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于外部存储器,则从外部存储器恢复所述虚拟页面的UI域数据和状态数据,基于所述UI域数据和状态数据构建第二UI域实例和第二状态数据实例,构建与所述第二UI域实例和所述第二状态数据实例匹配的第二UI样式实例,基于所述第二UI样式实例、所述第二UI域实例和所述第二状态数据实例创建虚拟页面实例;若所述页面请求已被实例化且所述页面请求对应的虚拟页面实例存储于后台内部存储器,则直接切换至所述虚拟页面实例;
调配单元,用于接收SPA中内存监控器装置的实时检测结果,确定所述虚拟页面实例的存储方式,其中,所述存储方式包括前台内部存储器存储、后台内部存储器存储以及外部存储器存储;
更新单元,用于若接收到用户的中间输入,则命令SPA中通知服务装置向订阅通知服务的虚拟页面实例发布状态更新消息,并根据订阅通知服务的虚拟页面实例的存储方式更新订阅通知服务的虚拟页面实例的状态。
6.根据权利要求5所述的SPA中更新虚拟页面实例状态的装置,其特征在于,所述调配单元,具体用于:
若所述虚拟页面实例为用户正在使用实例,则所述虚拟页面实例的存储方式为前台内部存储器存储;
若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存不足,则所述虚拟页面实例的存储方式为外部存储器存储;
若所述虚拟页面实例非用户正在使用实例且SPA中内存监控器装置的实时检测结果为当前内存充足,则所述虚拟页面实例的存储方式为后台内部存储器存储;
所述SPA中内存监控器装置的实时检测结果为当前内存不足,具体包括:
SPA中内存监控器装置的实时检测结果为***存在内部存储器不足警告或者内部存储器中虚拟页面实例的数量超过预设阈值。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-4中任一项所述的SPA中更新虚拟页面实例状态方法的步骤。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如1-4中任一项所述的SPA中更新虚拟页面实例状态方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010388536.0A CN111625239B (zh) | 2020-05-09 | 2020-05-09 | Spa中更新虚拟页面实例状态的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010388536.0A CN111625239B (zh) | 2020-05-09 | 2020-05-09 | Spa中更新虚拟页面实例状态的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625239A CN111625239A (zh) | 2020-09-04 |
CN111625239B true CN111625239B (zh) | 2023-05-02 |
Family
ID=72259895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010388536.0A Active CN111625239B (zh) | 2020-05-09 | 2020-05-09 | Spa中更新虚拟页面实例状态的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625239B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291449A (zh) * | 2017-05-22 | 2017-10-24 | 北京奇艺世纪科技有限公司 | 一种页面渲染方法、装置及设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283920A (zh) * | 2013-07-05 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 一种网络应用路由的方法、服务器、终端和*** |
CN106294365A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种单页web应用的页面数据处理方法及设备 |
US10846060B2 (en) * | 2018-01-29 | 2020-11-24 | Q2 Software, Inc. | Single-page web application builder system and method based on a finite-state machine |
CN109739604B (zh) * | 2018-12-28 | 2022-04-15 | 北京城市网邻信息技术有限公司 | 页面渲染方法、装置、服务器及存储介质 |
CN110457024B (zh) * | 2019-07-29 | 2020-09-22 | 南京控维通信科技有限公司 | 基于VUE的前端请求和更新数据的插件iwebData实现方法 |
CN110928545B (zh) * | 2019-12-04 | 2024-03-12 | 北京小米移动软件有限公司 | 组件分发方法、单页应用的开发方法、装置及存储介质 |
CN111090823B (zh) * | 2019-12-23 | 2024-02-09 | 广州市百果园信息技术有限公司 | 一种页面应用的集成***以及应用访问方法、装置和设备 |
-
2020
- 2020-05-09 CN CN202010388536.0A patent/CN111625239B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291449A (zh) * | 2017-05-22 | 2017-10-24 | 北京奇艺世纪科技有限公司 | 一种页面渲染方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111625239A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110808857B (zh) | 实现Kubernetes集群的网络互通方法、装置、设备以及存储介质 | |
CN109726076B (zh) | 一种小程序生命周期管理方法和*** | |
CN111190673B (zh) | 基于操作监测的页面展示方法、装置和电子设备 | |
CN113407383B (zh) | 主备***切换方法、装置、服务器及主备*** | |
CN106817388A (zh) | 虚拟机、宿主机获取数据的方法、装置及访问数据的*** | |
CN107211003A (zh) | 分布式存储***及管理元数据的方法 | |
EP2256633A2 (en) | Service provider management device, service provider management program, and service provider management method | |
CN111090495A (zh) | 节点管理方法、装置、设备、存储介质和*** | |
CN114826749A (zh) | 一种接口访问控制方法、装置、介质 | |
CN112333289A (zh) | 反向代理访问方法、装置、电子设备及存储介质 | |
CN113536168B (zh) | 组件处理方法及设备 | |
CN111176577A (zh) | 分布式块存储服务命令处理方法、装置、设备及介质 | |
CN111625239B (zh) | Spa中更新虚拟页面实例状态的方法和装置 | |
CN112926002A (zh) | 一种服务请求的处理方法及装置 | |
CN112286559A (zh) | 一种车载智能终端的升级方法及装置 | |
CN103118248A (zh) | 监控方法、监控代理、监控服务器和*** | |
CN115390897B (zh) | 微前端管理的方法、装置、电子设备及存储介质 | |
CN116974465A (zh) | 数据加载方法、装置、设备及计算机存储介质 | |
CN113961298A (zh) | 一种页面切换方法、装置、设备及介质 | |
CN112163178A (zh) | 页面数据的显示方法和装置、存储介质、电子装置 | |
CN112688980B (zh) | 资源分发方法、装置、计算机设备 | |
CN113326052A (zh) | 业务组件的升级方法、装置、计算机设备和存储介质 | |
CN107704491B (zh) | 消息处理方法和装置 | |
CN112799558A (zh) | 信息处理方法、装置及电子设备和存储介质 | |
CN106934555B (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 |