CN117271867A - 页面数据的存储方法及装置、存储介质、计算机设备 - Google Patents
页面数据的存储方法及装置、存储介质、计算机设备 Download PDFInfo
- Publication number
- CN117271867A CN117271867A CN202311451010.2A CN202311451010A CN117271867A CN 117271867 A CN117271867 A CN 117271867A CN 202311451010 A CN202311451010 A CN 202311451010A CN 117271867 A CN117271867 A CN 117271867A
- Authority
- CN
- China
- Prior art keywords
- state
- state data
- source code
- page
- code file
- 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 63
- 238000013500 data storage Methods 0.000 title claims description 10
- 230000004048 modification Effects 0.000 claims description 52
- 238000012986 modification Methods 0.000 claims description 52
- 238000012544 monitoring process Methods 0.000 claims description 43
- 238000007726 management method Methods 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 8
- 230000000875 corresponding effect Effects 0.000 description 73
- 230000006870 function Effects 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 5
- 230000002085 persistent effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000002045 lasting effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000002715 modification method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- DBGIVFWFUFKIQN-UHFFFAOYSA-N (+-)-Fenfluramine Chemical compound CCNC(C)CC1=CC=CC(C(F)(F)F)=C1 DBGIVFWFUFKIQN-UHFFFAOYSA-N 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012377 drug delivery Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9532—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数字医疗技术领域,公开了一种页面数据的存储方法及装置、存储介质、计算机设备,该方法包括:响应于浏览器页面打开请求,确定所述浏览器页面打开请求指示的第一页面对应的至少一个第一源代码文件;启动每个所述第一源代码文件各自的第一状态容器,并利用每个所述第一状态容器,在本地存储空间中读取每个所述源代码文件对应的历史状态数据;基于所述历史状态数据显示所述第一页面,并获取在所述第一页面上通过调用任意所述第一源代码文件产生的待存储状态数据;根据所述待存储状态数据对应的被调用源代码文件,确定目标第一状态容器,并在所述本地存储空间中将所述待存储状态数据存储为所述被调用源代码文件的历史状态数据。
Description
技术领域
本申请涉及数字医疗和数据存储技术领域,尤其是涉及到一种页面数据的存储方法及装置、存储介质、计算机设备。
背景技术
前端开发中常用的存储数据方式有2种,分为基于浏览器的本地存储(包括cookie、sessionStorage、localStorage)和基于框架的容器类存储(如:vuex、redux、flux等)。本地存储主要用于页面间传值,无法进行组件间传值,为适应于开发需求目前在前端开发中多采用容器技术,而容器存储虽然能够用于组件间传值,但其保存的数据却是存储在内存中,难以持久化。
随着移动端的普及和技术的发展,通过移动端上的应用程序(Application,APP)进行医疗业务的办理也越来越普遍,例如在线挂号、在线问诊、在线开药等。用户办理医疗业务通常是一个持续性的行为,比如一次问诊之后可能会多次开药,如果每次开药都需要重复的输入之前已经输入过的问诊信息、患者信息等,会给用户带来负担。但内存中能存储的数据有限,容器技术难以持久化数据的问题,尚未得到有效解决。
发明内容
有鉴于此,本申请提供了一种页面数据的存储方法及装置、存储介质、计算机设备,通过持久化存储状态数据的方式,只要一次产生基于某个源代码文件的状态数据,之后就可以通过状态容器直接调用该状态数据,无需用户重复进行信息输入,并且如果基于某个源代码文件的状态数据发生改变,也能够通过状态容器对状态数据进行更新存储,从而有效提升用户体验。
根据本申请的一个方面,提供了一种页面数据的存储方法,所述方法包括:
响应于浏览器页面打开请求,识别所述浏览器页面打开请求指示的第一页面,确定所述第一页面对应的至少一个第一源代码文件;
启动每个所述第一源代码文件各自的第一状态容器,并利用每个所述第一状态容器,在本地存储空间中读取每个所述源代码文件对应的历史状态数据;
基于所述历史状态数据显示所述第一页面,并获取在所述第一页面上通过调用任意所述第一源代码文件产生的待存储状态数据;
根据所述待存储状态数据对应的被调用源代码文件,确定目标第一状态容器,并在所述本地存储空间中将所述待存储状态数据存储为所述被调用源代码文件的历史状态数据。
可选地,所述方法还包括:
当浏览器启动时,加载预设状态管理库,其中,所述预设状态管理库包括状态存储属性、状态修改属性以及状态监视属性,所述状态存储属性用于定义待存储的状态数据类型,所述状态修改属性用于定义对所述状态数据类型进行修改的方法,所述状态监视属性用于定义对状态数据的监听方法。
可选地,所述获取在所述第一页面上通过调用任意所述第一源代码文件产生的待存储状态数据,包括:
基于所述状态存储属性和所述状态监视属性,生成对所述状态数据类型的状态变化数据的监听函数;
通过所述监听函数对所述在第一页面上通过调用任意所述第一源代码文件产生的新的状态数据进行监听,并基于所述历史状态数据,识别所述新的状态数据是否属于待存储的所述待存储状态数据。
可选地,所述加载预设状态管理库之后,所述方法还包括:
向所述预设状态管理库对应的服务器发送查询信息,以查询所述服务器中是否存在所述预设状态管理库对应的状态数据类型修改信息;
当查询到所述待存储状态数据类型更改信息时,基于所述状态数据类型修改信息以及所述预设状态数据库中的状态修改属性,对所述状态存储属性中定义的所述状态数据类型进行修改。
可选地,所述加载预设状态管理库之后,所述方法还包括:
当接收到所述服务器推送的第二状态数据类型修改信息时,基于所述第二状态数据类型修改信息以及所述预设状态数据库中的状态修改属性,对所述状态存储属性中定义的所述状态数据类型进行修改。
可选地,所述在所述本地存储空间中将所述待存储状态数据存储为所述被调用源代码文件的历史状态数据,包括:
对所述待存储状态数据进行序列化处理,将所述被调用源代码文件对应的第一状态容器标识作为键,将序列化后的待存储状态数据作为值,生成状态数据键值对,并将所述状态数据键值对存储在所述本地存储空间中;
相应地,所述在本地存储空间中读取每个所述源代码文件对应的历史状态数据,包括:
基于所述源代码文件对应的第一状态容器标识生成状态数据查询语句,并利用所述状态数据查询语句,在所述本地存储空间中查询所述源代码文件对应的历史状态数据键值对;
对所述历史状态数据键值对进行解析,将解析出的值作为所述第一源代码文件对应的历史状态数据。
可选地,所述基于所述历史状态数据显示所述第一页面之后,所述方法还包括:
响应于对所述第一页面的关闭请求,关闭所述第一状态容器;和/或,
响应于用于指示从所述第一页面向第二页面切换的页面切换请求,确定所述第二页面对应的至少一个第二源代码文件,识别所述第一源代码文件中与每个第二源代码文件均不同的差异文件,并关闭所述差异文件对应的状态容器,启动所述第二源代码文件中除所述差异文件之外的其他文件对应的第二状态容器。
根据本申请的另一方面,提供了一种页面数据的存储装置,所述装置包括:
请求响应模块,用于响应于浏览器页面打开请求,识别所述浏览器页面打开请求指示的第一页面,确定所述第一页面对应的至少一个第一源代码文件;
容器启闭模块,用于启动每个所述第一源代码文件各自的第一状态容器,并利用每个所述第一状态容器,在本地存储空间中读取每个所述源代码文件对应的历史状态数据;
数据获取模块,用于基于所述历史状态数据显示所述第一页面,并获取在所述第一页面上通过调用任意所述第一源代码文件产生的待存储状态数据;
数据存储模块,用于根据所述待存储状态数据对应的被调用源代码文件,确定目标第一状态容器,并在所述本地存储空间中将所述待存储状态数据存储为所述被调用源代码文件的历史状态数据。
可选地,所述装置还包括:
库加载模块,用于当浏览器启动时,加载预设状态管理库,其中,所述预设状态管理库包括状态存储属性、状态修改属性以及状态监视属性,所述状态存储属性用于定义待存储的状态数据类型,所述状态修改属性用于定义对所述状态数据类型进行修改的方法,所述状态监视属性用于定义对状态数据的监听方法。
可选地,所述数据获取模块,用于:
基于所述状态存储属性和所述状态监视属性,生成对所述状态数据类型的状态变化数据的监听函数;
通过所述监听函数对所述在第一页面上通过调用任意所述第一源代码文件产生的新的状态数据进行监听,并基于所述历史状态数据,识别所述新的状态数据是否属于待存储的所述待存储状态数据。
可选地,所述库加载模块,还用于:
向所述预设状态管理库对应的服务器发送查询信息,以查询所述服务器中是否存在所述预设状态管理库对应的状态数据类型修改信息;
当查询到所述待存储状态数据类型更改信息时,基于所述状态数据类型修改信息以及所述预设状态数据库中的状态修改属性,对所述状态存储属性中定义的所述状态数据类型进行修改。
可选地,所述库加载模块,还用于:
当接收到所述服务器推送的第二状态数据类型修改信息时,基于所述第二状态数据类型修改信息以及所述预设状态数据库中的状态修改属性,对所述状态存储属性中定义的所述状态数据类型进行修改。
可选地,所述数据存储模块,还用于:
对所述待存储状态数据进行序列化处理,将所述被调用源代码文件对应的第一状态容器标识作为键,将序列化后的待存储状态数据作为值,生成状态数据键值对,并将所述状态数据键值对存储在所述本地存储空间中;
相应地,所述容器启闭模块,还用于:
基于所述源代码文件对应的第一状态容器标识生成状态数据查询语句,并利用所述状态数据查询语句,在所述本地存储空间中查询所述源代码文件对应的历史状态数据键值对;
对所述历史状态数据键值对进行解析,将解析出的值作为所述第一源代码文件对应的历史状态数据。
可选地,所述容器启闭模块,还用于:
响应于对所述第一页面的关闭请求,关闭所述第一状态容器;和/或,
响应于用于指示从所述第一页面向第二页面切换的页面切换请求,确定所述第二页面对应的至少一个第二源代码文件,识别所述第一源代码文件中与每个第二源代码文件均不同的差异文件,并关闭所述差异文件对应的状态容器,启动所述第二源代码文件中除所述差异文件之外的其他文件对应的第二状态容器。
依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述页面数据的存储方法。
依据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述页面数据的存储方法。
借由上述技术方案,本申请提供的一种页面数据的存储方法及装置、存储介质、计算机设备,请求打开第一页面时,先确定第一页面对应的第一源代码文件,并启动每个第一源代码文件的第一状态容器,然后利用第一状态容器在本地存储空间中读取出源代码文件对应的历史状态数据,从而在第一页面的相应位置处显示历史状态数据,同时继续获取在第一页面上通过调用任意第一源代码文件产生的新的待存储状态数据,最后将该待存储状态数据与被调用源代码文件进行关联,并持久化存储在本地存储空间中。本申请实施例通过持久化存储状态数据的方式,只要一次产生基于某个源代码文件的状态数据,之后就可以通过状态容器直接调用该状态数据,无需用户重复进行信息输入,并且如果基于某个源代码文件的状态数据发生改变,也能够通过状态容器对状态数据进行更新存储,从而有效提升用户体验。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种页面数据的存储方法的流程示意图;
图2示出了本申请实施例提供的另一种页面数据的存储方法的流程示意图;
图3示出了本申请实施例提供的一种页面数据的存储装置的结构示意图;
图4示出了本申请实施例提供的一种计算机设备的装置结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本实施例中提供了一种页面数据的存储方法,如图1所示,该方法包括:
步骤101,响应于浏览器页面打开请求,识别所述浏览器页面打开请求指示的第一页面,确定所述第一页面对应的至少一个第一源代码文件。
在本申请实施例中,当用户使用浏览器的过程中请求打开某个页面时,客户端响应于浏览器页面打开请求,确定用户请求打开的第一页面,并确定支持第一页面运行的全部第一源代码文件,例如JS文件,其中,浏览器不同页面上提供不同功能,例如输入患者信息的功能、选择挂号医生的功能等,页面上的功能得以实现依赖于各JS文件。
步骤102,启动每个所述第一源代码文件各自的第一状态容器,并利用每个所述第一状态容器,在本地存储空间中读取每个所述源代码文件对应的历史状态数据。
本申请实施例中的浏览器为基于容器技术开发的浏览器,每个源代码文件对应有各自的状态容器,浏览器利用状态容器实现该源代码文件支持功能的状态数据管理。确定第一页面对应的各第一源代码文件后,启动每个第一源代码文件各自对应的第一状态容器,并利用每个第一状态容器读取出该第一状态容器已持久化存储在本地存储空间中的历史状态数据。
步骤103,基于所述历史状态数据显示所述第一页面,并获取在所述第一页面上通过调用任意所述第一源代码文件产生的待存储状态数据。
步骤104,根据所述待存储状态数据对应的被调用源代码文件,确定目标第一状态容器,并在所述本地存储空间中将所述待存储状态数据存储为所述被调用源代码文件的历史状态数据。
在本申请实施例中,确定第一页面对应的各第一源代码文件,并读取出各第一源代码文件对应的历史状态数据之后,在显示第一页面时,就可以将历史状态数据填充在第一页面上的相应位置处,例如历史状态数据包括患者信息,就可以将患者信息填充在第一页面上的患者信息填写区域,避免用户重复进行信息填写。同时,用户在浏览第一页面的过程中,持续监听在第一页面上产生的新的状态数据,并将监听到的产生的新的状态数据作为待存储状态数据,例如用户在页面上更改了患者信息,更改后的患者信息则可视为产生的新的状态数据。进一步,对待存储状态数据进行持久化存储时,还需要确定状态数据是通过调用哪个第一源代码文件而产生的,从而通过状态容器将待存储状态数据与被调用源代码文件进行关联存储,以便用户在下一次请求打开的页面、且需要该被调用源代码文件支持该页面运行时,能够快速读取出该被调用源代码文件的历史状态数据。通过持久化存储状态数据的方式,只要一次产生基于某个源代码文件的状态数据,之后就可以通过状态容器直接调用该状态数据,无需用户重复进行信息输入,并且如果基于某个源代码文件的状态数据发生改变,也能够通过状态容器对状态数据进行更新存储,从而有效提升用户体验。
通过应用本实施例的技术方案,请求打开第一页面时,先确定第一页面对应的第一源代码文件,并启动每个第一源代码文件的第一状态容器,然后利用第一状态容器在本地存储空间中读取出源代码文件对应的历史状态数据,从而在第一页面的相应位置处显示历史状态数据,同时继续获取在第一页面上通过调用任意第一源代码文件产生的新的待存储状态数据,最后将该待存储状态数据与被调用源代码文件进行关联,并持久化存储在本地存储空间中。本申请实施例通过持久化存储状态数据的方式,只要一次产生基于某个源代码文件的状态数据,之后就可以通过状态容器直接调用该状态数据,无需用户重复进行信息输入,并且如果基于某个源代码文件的状态数据发生改变,也能够通过状态容器对状态数据进行更新存储,从而有效提升用户体验。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种页面数据的存储方法,如图2所示,该方法包括:
步骤201,当浏览器启动时,加载预设状态管理库,其中,所述预设状态管理库包括状态存储属性、状态修改属性以及状态监视属性,所述状态存储属性用于定义待存储的状态数据类型,所述状态修改属性用于定义对所述状态数据类型进行修改的方法,所述状态监视属性用于定义对状态数据的监听方法。
在本申请实施例中的状态容器基于自研的预设状态管理库进行功能实现。目前市面上常用的状态管理库是vuex,vuex属于重量级的状态管理库,对使用设备的性能有一定影响,尤其是对于移动端会造成较大设备开销,造成卡顿等不良情况。本申请通过开发轻量级的状态管理库来支持状态容器的使用,发明人根据实际需求对状态管理库进行关键属性分析后,确定实际所需的关键属性为状态存储属性state、状态修改属性action以及状态监视属性getter,从而利用这三种关键属性构建预设状态管理库。其中,状态存储属性用于定义待存储的状态数据类型,即需要进行持久化存储的状态数据类型;状态修改属性用于定义对状态数据类型进行修改的方法,即对状态存储属性定义的状态数据类型的修改方法,具体可以通过API接口获取状态数据类型修改信息,并使用定义的修改方法对状态存储属性定义的状态数据类型进行修改;状态监视属性用于定义对状态数据的监听方法,即对页面上状态数据的监听方法。在实际应用场景中,客户端启动浏览器时,自动加载该预设状态管理库,以便启动状态容器后状态容器能够使用库内资源。
本申请自研的预设状态管理库只有state、getter、action三个关键属性,对比vuex状态管理库没有mutation,可以直接通过action同步和异步操作来修改state数据;不需要modules的嵌套结构,通过defineStore即可创建独立仓库。从语法上比vuex状态管理库更加精简,容易理解使用。从体积上来看,最终自研的预设状态管理库的体积大小仅1kb,性能上远远高于vuex状态管理库的集成。
在本申请实施例中,可选地,步骤201之后还包括:
向所述预设状态管理库对应的服务器发送查询信息,以查询所述服务器中是否存在所述预设状态管理库对应的状态数据类型修改信息;当查询到所述待存储状态数据类型更改信息时,基于所述状态数据类型修改信息以及所述预设状态数据库中的状态修改属性,对所述状态存储属性中定义的所述状态数据类型进行修改。
当接收到所述服务器推送的第二状态数据类型修改信息时,基于所述第二状态数据类型修改信息以及所述预设状态数据库中的状态修改属性,对所述状态存储属性中定义的所述状态数据类型进行修改。
在上述实施例中,预设状态管理库中的状态存储属性定义了需要进行状态数据存储的状态数据类型,研发人员可以根据实际需要去修改状态数据类型。当浏览器加载预设状态管理库时,可以向服务器发送查询信息,主动的在服务器中查询是否存在第一状态数据类型修改信息,如果存在,那么利用预设状态管理库中状态修改属性定义的修改方法,将状态存储属性定义的状态数据类型修改为该第一状态数据类型修改信息指示的修改类型,以实现对状态数据类型的修改,以便状态容器对页面上的状态数据进行监听时能够根据状态存储属性定义的最新的状态数据类型进行监听。
另外,如果在用户使用浏览器的过程中,服务器侧产生了第二状态数据类型修改信息,也可以实时接收服务器推送的第二状态数据类型修改信息,并对已加载的预设状态管理库中的状态修改属性进行动态修改。
步骤202,响应于浏览器页面打开请求,识别所述浏览器页面打开请求指示的第一页面,确定所述第一页面对应的至少一个第一源代码文件。
步骤203,启动每个所述第一源代码文件各自的第一状态容器;利用每个所述第一状态容器,基于所述源代码文件对应的第一状态容器标识生成状态数据查询语句,并利用所述状态数据查询语句,在所述本地存储空间中查询所述源代码文件对应的历史状态数据键值对,对所述历史状态数据键值对进行解析,将解析出的值作为所述第一源代码文件对应的历史状态数据。
在该实施例中,用户请求打开第一页面时,确定第一页面对应的第一源代码文件,启动每个第一源代码文件各自对应的第一状态容器,然后利用每个第一状态容器生成状态数据查询语句进行历史状态数据查询。其中,历史状态数据以key-value键值对的形式存储在本地存储空间中,具体地,以状态容器标识为key,以状态数据为value,状态数据查询语句携带第一状态容器标识,从而在本地存储空间中查询出对应的值并进行反序列化解析后作为历史状态数据。
步骤204,基于所述历史状态数据显示所述第一页面,基于所述状态存储属性和所述状态监视属性,生成对所述状态数据类型的状态变化数据的监听函数;通过所述监听函数对所述在第一页面上通过调用任意所述第一源代码文件产生的新的状态数据进行监听,并基于所述历史状态数据,识别所述新的状态数据是否属于待存储的所述待存储状态数据。
在该实施例中,可以直接将查询到的历史状态数据显示在第一页面中。之后,用户持续浏览第一页面的过程中,可能产生新的状态数据,第一状态容器可以调用预设状态管理库中的状态存储属性和状态监视属性,生成监听函数,该监听函数用于监听页面上产生的与状态存储属性所定义的状态数据类型相同的状态数据,以及用于在监听到页面上产生了新的状态数据后,通过比对新的状态数据和历史状态数据来判断是否将监听到的新的状态数据作为待存储状态数据,其中,如果新的状态数据与历史状态数据相同,那么不作为待存储状态数据,如果二者不同,那么将新的状态数据作为待存储状态数据。
步骤205,根据所述待存储状态数据对应的被调用源代码文件,确定目标第一状态容器,并对所述待存储状态数据进行序列化处理,将所述被调用源代码文件对应的第一状态容器标识作为键,将序列化后的待存储状态数据作为值,生成状态数据键值对,并将所述状态数据键值对存储在所述本地存储空间中。
在该实施例中,得到被调用源代码文件对应的待存储状态数据后,对待存储状态数据进行序列化处理,以减少状态数据占用的存储空间。以被调用源代码文件的目标第一状态容器的标识作为键,以序列化的待存储状态数据作为值,生成状态数据键值对,并将状态数据键值对存储在本地存储空间中,并将本地存储空间中具有与该状态数据键值对具有相同键的数据替换为该状态数据键值对,以完成对被调用源代码文件的历史状态数据的更新,使得本地存储空间中存储源代码文件的最新状态数据,减少状态数据的占用空间,以及提升后续对历史状态数据的查询效率。
步骤206,响应于对所述第一页面的关闭请求,关闭所述第一状态容器。
步骤207,响应于用于指示从所述第一页面向第二页面切换的页面切换请求,确定所述第二页面对应的至少一个第二源代码文件,识别所述第一源代码文件中与每个第二源代码文件均不同的差异文件,并关闭所述差异文件对应的状态容器,启动所述第二源代码文件中除所述差异文件之外的其他文件对应的第二状态容器。
在该实施例中,状态容器随着页面的关闭而关闭,如果用户关闭第一页面,那么浏览器自动关闭第一页面对应的第一状态容器。而如果用户从第一页面切换至第二页面,那么可以先查询第二页面对应的第二源代码文件,比对第一源代码文件和第二源代码文件,将第一源代码文件中与第二源代码文件不同的部分确定为差异文件,即第二页面中功能的实现不依赖于这部分差异文件,可以关闭差异文件对应的状态容器,另外,对于第二源代码文件中包含但第一源代码文件不包含的部分,即第二源代码文件中除差异文件之外的其他文件,由于第二页面中功能的实现依赖于这部分其他文件,因此启动对应的第二状态容器。可以理解的是,对于第一源代码文件中与第二源代码文件相同的部分,这部分对应的状态容器在切换页面的过程中始终保持着启动状态,无需进行关闭,避免频繁启停状态容器造成的设备性能开销,提升了状态容器使用效果,也进一步避免启停状态容器需要重新读取历史状态数据,有助于提升状态数据使用效率。
进一步的,作为图1方法的具体实现,本申请实施例提供了一种页面数据的存储装置,如图3所示,该装置包括:
请求响应模块,用于响应于浏览器页面打开请求,识别所述浏览器页面打开请求指示的第一页面,确定所述第一页面对应的至少一个第一源代码文件;
容器启闭模块,用于启动每个所述第一源代码文件各自的第一状态容器,并利用每个所述第一状态容器,在本地存储空间中读取每个所述源代码文件对应的历史状态数据;
数据获取模块,用于基于所述历史状态数据显示所述第一页面,并获取在所述第一页面上通过调用任意所述第一源代码文件产生的待存储状态数据;
数据存储模块,用于根据所述待存储状态数据对应的被调用源代码文件,确定目标第一状态容器,并在所述本地存储空间中将所述待存储状态数据存储为所述被调用源代码文件的历史状态数据。
可选地,所述装置还包括:
库加载模块,用于当浏览器启动时,加载预设状态管理库,其中,所述预设状态管理库包括状态存储属性、状态修改属性以及状态监视属性,所述状态存储属性用于定义待存储的状态数据类型,所述状态修改属性用于定义对所述状态数据类型进行修改的方法,所述状态监视属性用于定义对状态数据的监听方法。
可选地,所述数据获取模块,用于:
基于所述状态存储属性和所述状态监视属性,生成对所述状态数据类型的状态变化数据的监听函数;
通过所述监听函数对所述在第一页面上通过调用任意所述第一源代码文件产生的新的状态数据进行监听,并基于所述历史状态数据,识别所述新的状态数据是否属于待存储的所述待存储状态数据。
可选地,所述库加载模块,还用于:
向所述预设状态管理库对应的服务器发送查询信息,以查询所述服务器中是否存在所述预设状态管理库对应的状态数据类型修改信息;
当查询到所述待存储状态数据类型更改信息时,基于所述状态数据类型修改信息以及所述预设状态数据库中的状态修改属性,对所述状态存储属性中定义的所述状态数据类型进行修改。
可选地,所述库加载模块,还用于:
当接收到所述服务器推送的第二状态数据类型修改信息时,基于所述第二状态数据类型修改信息以及所述预设状态数据库中的状态修改属性,对所述状态存储属性中定义的所述状态数据类型进行修改。
可选地,所述数据存储模块,还用于:
对所述待存储状态数据进行序列化处理,将所述被调用源代码文件对应的第一状态容器标识作为键,将序列化后的待存储状态数据作为值,生成状态数据键值对,并将所述状态数据键值对存储在所述本地存储空间中;
相应地,所述容器启闭模块,还用于:
基于所述源代码文件对应的第一状态容器标识生成状态数据查询语句,并利用所述状态数据查询语句,在所述本地存储空间中查询所述源代码文件对应的历史状态数据键值对;
对所述历史状态数据键值对进行解析,将解析出的值作为所述第一源代码文件对应的历史状态数据。
可选地,所述容器启闭模块,还用于:
响应于对所述第一页面的关闭请求,关闭所述第一状态容器;和/或,
响应于用于指示从所述第一页面向第二页面切换的页面切换请求,确定所述第二页面对应的至少一个第二源代码文件,识别所述第一源代码文件中与每个第二源代码文件均不同的差异文件,并关闭所述差异文件对应的状态容器,启动所述第二源代码文件中除所述差异文件之外的其他文件对应的第二状态容器。
需要说明的是,本申请实施例提供的一种页面数据的存储装置所涉及各功能单元的其他相应描述,可以参考图1至图2方法中的对应描述,在此不再赘述。
本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,如图4所示,该计算机设备包括总线、处理器、存储器和通信接口,还可以包括输入输出接口和显示设备。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储位置信息。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现各方法实施例中的步骤。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质可以是非易失性,也可以是易失性,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种页面数据的存储方法,其特征在于,所述方法包括:
响应于浏览器页面打开请求,识别所述浏览器页面打开请求指示的第一页面,确定所述第一页面对应的至少一个第一源代码文件;
启动每个所述第一源代码文件各自的第一状态容器,并利用每个所述第一状态容器,在本地存储空间中读取每个所述源代码文件对应的历史状态数据;
基于所述历史状态数据显示所述第一页面,并获取在所述第一页面上通过调用任意所述第一源代码文件产生的待存储状态数据;
根据所述待存储状态数据对应的被调用源代码文件,确定目标第一状态容器,并在所述本地存储空间中将所述待存储状态数据存储为所述被调用源代码文件的历史状态数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当浏览器启动时,加载预设状态管理库,其中,所述预设状态管理库包括状态存储属性、状态修改属性以及状态监视属性,所述状态存储属性用于定义待存储的状态数据类型,所述状态修改属性用于定义对所述状态数据类型进行修改的方法,所述状态监视属性用于定义对状态数据的监听方法。
3.根据权利要求2所述的方法,其特征在于,所述获取在所述第一页面上通过调用任意所述第一源代码文件产生的待存储状态数据,包括:
基于所述状态存储属性和所述状态监视属性,生成对所述状态数据类型的状态变化数据的监听函数;
通过所述监听函数对所述在第一页面上通过调用任意所述第一源代码文件产生的新的状态数据进行监听,并基于所述历史状态数据,识别所述新的状态数据是否属于待存储的所述待存储状态数据。
4.根据权利要求2所述的方法,其特征在于,所述加载预设状态管理库之后,所述方法还包括:
向所述预设状态管理库对应的服务器发送查询信息,以查询所述服务器中是否存在所述预设状态管理库对应的状态数据类型修改信息;
当查询到所述待存储状态数据类型更改信息时,基于所述状态数据类型修改信息以及所述预设状态数据库中的状态修改属性,对所述状态存储属性中定义的所述状态数据类型进行修改。
5.根据权利要求2所述的方法,其特征在于,所述加载预设状态管理库之后,所述方法还包括:
当接收到所述服务器推送的第二状态数据类型修改信息时,基于所述第二状态数据类型修改信息以及所述预设状态数据库中的状态修改属性,对所述状态存储属性中定义的所述状态数据类型进行修改。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述在所述本地存储空间中将所述待存储状态数据存储为所述被调用源代码文件的历史状态数据,包括:
对所述待存储状态数据进行序列化处理,将所述被调用源代码文件对应的第一状态容器标识作为键,将序列化后的待存储状态数据作为值,生成状态数据键值对,并将所述状态数据键值对存储在所述本地存储空间中;
相应地,所述在本地存储空间中读取每个所述源代码文件对应的历史状态数据,包括:
基于所述源代码文件对应的第一状态容器标识生成状态数据查询语句,并利用所述状态数据查询语句,在所述本地存储空间中查询所述源代码文件对应的历史状态数据键值对;
对所述历史状态数据键值对进行解析,将解析出的值作为所述第一源代码文件对应的历史状态数据。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述基于所述历史状态数据显示所述第一页面之后,所述方法还包括:
响应于对所述第一页面的关闭请求,关闭所述第一状态容器;和/或,
响应于用于指示从所述第一页面向第二页面切换的页面切换请求,确定所述第二页面对应的至少一个第二源代码文件,识别所述第一源代码文件中与每个第二源代码文件均不同的差异文件,并关闭所述差异文件对应的状态容器,启动所述第二源代码文件中除所述差异文件之外的其他文件对应的第二状态容器。
8.一种页面数据的存储装置,其特征在于,所述装置包括:
请求响应模块,用于响应于浏览器页面打开请求,识别所述浏览器页面打开请求指示的第一页面,确定所述第一页面对应的至少一个第一源代码文件;
容器启闭模块,用于启动每个所述第一源代码文件各自的第一状态容器,并利用每个所述第一状态容器,在本地存储空间中读取每个所述源代码文件对应的历史状态数据;
数据获取模块,用于基于所述历史状态数据显示所述第一页面,并获取在所述第一页面上通过调用任意所述第一源代码文件产生的待存储状态数据;
数据存储模块,用于根据所述待存储状态数据对应的被调用源代码文件,确定目标第一状态容器,并在所述本地存储空间中将所述待存储状态数据存储为所述被调用源代码文件的历史状态数据。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法。
10.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311451010.2A CN117271867A (zh) | 2023-11-02 | 2023-11-02 | 页面数据的存储方法及装置、存储介质、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311451010.2A CN117271867A (zh) | 2023-11-02 | 2023-11-02 | 页面数据的存储方法及装置、存储介质、计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117271867A true CN117271867A (zh) | 2023-12-22 |
Family
ID=89202655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311451010.2A Pending CN117271867A (zh) | 2023-11-02 | 2023-11-02 | 页面数据的存储方法及装置、存储介质、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117271867A (zh) |
-
2023
- 2023-11-02 CN CN202311451010.2A patent/CN117271867A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9026523B2 (en) | Efficient selection of queries matching a record using a cache | |
US20160210273A1 (en) | In-memory workspace management | |
CN114218156A (zh) | 数据导出方法、装置、计算机设备和存储介质 | |
US10275468B2 (en) | Replication of data in a distributed file system using an arbiter | |
CN117271867A (zh) | 页面数据的存储方法及装置、存储介质、计算机设备 | |
CN115809311A (zh) | 知识图谱的数据处理方法、装置及计算机设备 | |
US9230022B1 (en) | Customizable result sets for application program interfaces | |
US10114864B1 (en) | List element query support and processing | |
CN112347794A (zh) | 数据翻译方法、装置、设备及计算机存储介质 | |
US7996401B2 (en) | Inserting new transactions into a transaction stream | |
CN113900826B (zh) | 数据处理方法、装置、计算机设备、存储介质和程序产品 | |
CN114528045B (zh) | 插件操作方法、装置、计算机设备和存储介质 | |
CN116304407A (zh) | 页面渲染方法、装置、计算机设备和存储介质 | |
CN117130606A (zh) | 前端页面配置方法、装置、计算机设备和存储介质 | |
CN117435589A (zh) | 数据转存方法、装置、计算机设备、存储介质 | |
CN116506540A (zh) | 页面数据请求方法、装置、电子设备及可读存储介质 | |
CN115408405A (zh) | 表单处理方法、装置、计算机设备 | |
CN117909550A (zh) | 查询方法、装置、计算机设备和存储介质 | |
CN117369895A (zh) | 快捷方式生成方法、装置、计算机设备和存储介质 | |
CN117455501A (zh) | 请求处理方法、装置、计算机设备和存储介质 | |
CN116633774A (zh) | 平台地址配置方法、装置、计算机设备和存储介质 | |
CN117312653A (zh) | 服务策略确定方法、装置、计算机设备和存储介质 | |
CN116894044A (zh) | 数据管理方法、装置、计算机设备和存储介质 | |
CN116775955A (zh) | 数据标签固化方法、装置、计算机设备和存储介质 | |
CN116910069A (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 |