CN114282137A - 用户操作数据存储方法、装置、设备及存储介质 - Google Patents
用户操作数据存储方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114282137A CN114282137A CN202111624184.5A CN202111624184A CN114282137A CN 114282137 A CN114282137 A CN 114282137A CN 202111624184 A CN202111624184 A CN 202111624184A CN 114282137 A CN114282137 A CN 114282137A
- Authority
- CN
- China
- Prior art keywords
- data
- page rendering
- target page
- rendering data
- user operation
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种用户操作数据存储方法、装置、设备及存储介质。其中方法包括:根据接收到的用户操作数据,获取目标页面渲染数据,目标页面渲染数据为全量数据;根据目标页面渲染数据进行页面渲染,以响应用户操作请求;对目标页面渲染数据进行降维处理,得到处理后的目标页面渲染数据;获取与处理后的目标页面渲染数据相邻的前一历史页面渲染数据;若前一历史页面渲染数据与处理后的目标页面渲染数据不相同,则存储处理后的目标页面渲染数据。本申请实现在用户使用前端应用过程中,采集并存储用户操作数据,为前端应用执行回退或恢复操作提供了条件。
Description
技术领域
本申请实施例涉及计算机技术,特别涉及一种用户操作数据存储方法、装置、设备及存储介质。
背景技术
前端应用是指运行于用户终端的浏览器软件上的一款Web应用程序。用户访问前端应用时,是基于本地浏览器请求,远程服务器响应的方式实现。
为了实现流畅的用户体验,前端应用会采用单页应用模式,即只有一个页面,实现在用户与应用程序交互时,动态更新该页面,而无需从当前页面跳转到另一个页面。在使用前端应用过程中,用户可能需要进行回退或恢复操作,但因前端应用一般是由浏览器存储用户的操作路径,而不存储用户操作数据,导致前端应用无法回退或恢复到用户期望的状态。
发明内容
本申请实施例提供一种用户操作数据存储方法、装置、设备及存储介质,实现在用户使用前端应用过程中,采集并存储用户操作数据,为前端应用执行回退或恢复操作提供了条件。
第一方面,本申请实施例提供了一种用户操作数据存储方法,应用于前端应用,该方法包括:
根据接收到的用户操作数据,获取目标页面渲染数据,所述目标页面渲染数据为全量数据;
根据所述目标页面渲染数据进行页面渲染,以响应用户操作请求;
对所述目标页面渲染数据进行降维处理,得到处理后的目标页面渲染数据;
获取与所述处理后的目标页面渲染数据相邻的前一历史页面渲染数据;
若所述前一历史页面渲染数据与所述处理后的目标页面渲染数据不相同,则存储所述处理后的目标页面渲染数据。
第二方面,本申请实施例提供了一种用户操作数据存储装置,配置于前端应用,该装置包括:
第一获取模块,用于根据接收到的用户操作数据,获取目标页面渲染数据,所述目标页面渲染数据为全量数据;
页面渲染模块,用于根据所述目标页面渲染数据进行页面渲染,以响应用户操作请求;
数据处理模块,用于对所述目标页面渲染数据进行降维处理,得到处理后的目标页面渲染数据;
第二获取模块,用于获取与所述处理后的目标页面渲染数据相邻的前一历史页面渲染数据;
数据存储模块,用于若所述前一历史页面渲染数据与所述处理后的目标页面渲染数据不相同,则存储所述处理后的目标页面渲染数据。
第三方面,本申请实施例提供了一种用户操作数据存储设备,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行第一方面实施例所述的用户操作数据存储方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行第一方面实施例所述的用户操作数据存储方法。
第五方面,本申请实施例提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现第一方面实施例所述的用户操作数据存储方法。
本申请实施例公开的技术方案,具有如下有益效果:
通过根据用户操作数据,获取目标页面渲染数据,并基于目标页面渲染数据进行页面渲染,之后对目标页面渲染数据进行降维处理,以得到处理后的目标页面渲染数据,并获取与处理后的目标页面渲染数据相邻的前一历史页面渲染数据,确定处理后的目标页面渲染数据与前一历史页面渲染数据是否相同,若不相同则将处理后的目标页面渲染数据进行存储。由此,实现在用户使用前端应用过程中,采集并存储用户操作数据,为前端应用执行回退或恢复操作提供了条件。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种用户操作数据存储方法的流程示意图;
图2是本申请实施例提供的一种对目标页面渲染数据进行降维处理的流程示意图;
图3a是本申请实施例提供的构建第一数据树的示意图;
图3b是本申请实施例提供的构建第二数据树的示意图;
图3c是本申请实施例提供的为第一数据树和第二数据树设置标识信息的示意图;
图3d是本申请实施例提供的处理后的第一数据树和处理后的第二数据树的示意图;
图3e是本申请实施例提供的计算处理后的第一数据树和处理后的第二数据树中分支哈希值和叶子节点哈希值的示意图;
图3f是本申请实施例提供的确定第一数据树对应的键值对,以及第二数据树对应的键值对的示意图;
图3g是本申请实施例提供的键值对拼接结果的示意图;
图4是本申请实施例提供的另一种用户操作数据存储方法的流程示意图;
图5是本申请实施例提供的再一种用户操作数据存储方法的流程示意图;
图6是本申请实施例提供的一种用户操作数据存储装置的示意性框图;
图7是本申请实施例提供的一种用户操作数据存储设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例主要针对现有技术中,因前端应用是由浏览器存储用户的操作路径,而不存储用户操作数据,导致用户使用前端应用无法回退或恢复到用户期望的状态的问题,提出了一种用户操作数据存储方法、装置、设备及存储介质。
下面结合附图对本申请实施例提供的一种用户操作数据存储方法、装置、设备及存储介质进行详细描述。
首先结合图1,对本申请实施例提供的一种用户操作数据存储方法进行说明。图1是本申请实施例提供的一种用户操作数据存储方法的流程示意图。本实施例提供的应用于前端应用的用户操作数据存储方法,可由用户操作数据存储装置来执行,以实现用户操作数据存储过程进行控制。该用户操作数据存储装置可由硬件和/或软件组成,并可集成于用户操作数据存储设备中。
其中,该用户操作数据存储方法包括以下步骤:
S101,根据接收到的用户操作数据,获取目标页面渲染数据,所述目标页面渲染数据为全量数据。
本实施例中,前端应用展示页面通常会显示至少一个控件。其中,每个控件代表一个应用功能。也即是说,用户在使用前端应用时,可根据使用需求,在展示页面上输入用户操作数据,以对展示页面中的控件进行输入,从而触发前端应用执行该控件对应的应用功能。例如,用户点击展示页面上某一个关闭按钮控件,以关闭该按钮控件关联的页面单元;或者,用户在展示页面上进行滑动操作,以滑动展示页面,等等。
其中,用户操作数据包括以下至少一种:回退操作数据、恢复操作数据、拖拽操作数据以及滑动操作数据。当然除了上述几种用户操作数据之外,本实施例还可包括其他用户操作数据,此处对其不作具体限制。
本实施例中恢复操作数据,也称之为:撤销操作数据。恢复操作数据是指用户在前端应用展示页面所作操作不合适,而想要返回到当前结果之前的状态时输入的一个操作数据。
拖拽操作数据和滑动操作数据,是指用户在前端应用展示页面中输入的新操作数据。
具体的,在前端应用运行过程中,用户操作数据存储设备会通过检测单元对用户是否输入用户操作数据进行实时检测。如果检测到用户操作数据,则获取并分析该用户操作数据,确定用户操作数据是哪一类操作数据。
其中,当确定用户操作数据是滑动操作数据或滑动操作数据等操作时,可通过调用数据适配接口,以从服务器端获取与用户操作数据对应的目标页面渲染数据。当确定用户操作数据是回退操作数据或恢复操作数据时,可从第一数据栈中获取目标页面渲染数据。本实施例中第一数据栈用于存储与用户历史操作数据对应的历史页面渲染数据。
需要说明的是,通过调用数据适配接口,从服务器端获取与用户操作数据对应的目标页面渲染数据为常规技术手段,此处对其不作过多赘述。
值得注意的是,本实施例通过获取目标页面渲染数据的全量数据,可获取到用于渲染前端应用展示页面的所有数据,从而后续基于该全量数据进行页面渲染时,避免了只获取与用户操作数据对应的部分页面渲染数据,而导致页面渲染时出现页面闪动的情况,从而为提高页面渲染的流畅性提供依据。
S102,根据所述目标页面渲染数据进行页面渲染,以响应用户操作请求。
示例性的,获取到目标页面渲染数据之后,即可根据目标页面渲染数据,对前端应用的展示页面进行页面渲染,以响应用户操作请求。
需要说明的是,根据页面渲染数据进行页面渲染为常规技术,此处对其不做过多赘述。
S103,对所述目标页面渲染数据进行降维处理,得到处理后的目标页面渲染数据。
由于目标页面渲染数据为全量数据时,不仅数据结构复杂,而且数据层级深且无序,不便于后续的数据存储操作。例如,目标页面渲染数据的数据结构为如下:
针对上述问题,本实施例可对目标页面渲染数据进行降维处理,以将目标页面渲染数据处理成数据结构简单、数据层级少且有序的一维目标页面渲染数据。
具体的,对目标页面渲染数据进行降维处理,得到处理后的目标页面渲染数据的过程,可参见图2所示。
图2是本申请实施例提供的一种对目标页面渲染数据进行降维处理的流程示意图。其中,对目标页面渲染数据进行降维处理的过程,具体包括如下步骤:
S201,基于所述目标页面渲染数据,构建至少一个数据树。
由于目标页面渲染数据中可包括多个数据,那么本实施例可从目标页面渲染数据中选取任一数据,作为第一数据。并且,基于第一数据,对目标页面渲染数据进行遍历处理,以得到与第一数据关联的所有目标数据。然后,以第一数据和目标数据为节点,以第一数据和目标数据之间的连接关系为边,按照数据之间的连接关系构建第一数据树。
当构建第一数据树之后,还可确定目标页面渲染数据中是否存在未处于第一数据树的其他数据。如果不存在其他数据,则结束数据树的构建;如果存在其他数据,则从其他数据中选取任一其他数据作为第一数据,继续遍历目标页面渲染数据,以构建第二数据,直至目标页面渲染数据中不存在未处理的数据为止。
也就是说,本实施例通过遍历目标页面渲染数据,以将目标页面渲染数据中的每个数据均用于构建数据树,以为目标页面渲染数据的降维处理奠定基础。
例如,若目标页面渲染数据X包括17个数据,分别为:数据A、数据A1、数据A2、数据A3、数据A11、数据A21、数据A22、数据A31、数据A111、数据B、数据B1、数据B2、数据B3、数据B11、数据B12、数据B21、数据B31。那么可将数据A作为第一数据,遍历该目标页面渲染数据X,得到与数据A关联的目标数据为:数据A1、数据A2、数据A3、数据A11、数据A21、数据A22、数据A31、数据A111。那么以数据A、数据A1、数据A2、数据A3、数据A11、数据A21、数据A22、数据A31、数据A111作为节点,以数据A、数据A1、数据A2、数据A3、数据A11、数据A21、数据A22、数据A31、数据A111之间的连接关系为边,按照上述9个数据之间的连接顺序构建第一数据树,具体如图3a所示。
构建好第一数据树之后,确定目标页面渲染数据X中存在未处于第一数据树的其他数据,具体为:数据B、数据B1、数据B2、数据B3、数据B11、数据B12、数据B21、数据B31。此时,可将数据B3作为第一数据,继续遍历该目标页面渲染数据X,得到与数据B3关联的目标数据为:数据B、数据B1、数据B2、数据B11、数据B12、数据B21、数据B31。那么以数据B、数据B1、数据B2、数据B3、数据B11、数据B12、数据B21、数据B31作为节点,以数据B、数据B1、数据B2、数据B3、数据B11、数据B12、数据B21、数据B31之间的连接关系为边,按照上述8个数据之间的连接顺序构建第二数据树,具体如图3b所示。
第二数据树构建好之后,确定目标页面渲染数据X中已经不存在待处理的数据,即所有数据均有所属的数据树。那么确定基于目标页面渲染数据X构建了两个数据树,分别为:第一数据树和第二数据树。
进一步的,基于目标页面渲染数据构建好数据树之后,本实施例还可为数据树设置标识信息,以及为每个数据树中各分支设置分支标记,以为后续数据存储奠定基础。
具体实现时,可确定数据树的数量是否为多个。若为多个,则为每个数据树设置标识信息。并且,当任意数据树中任一节点连接至少两条边(即具有分叉)时,按照固定方向为至少两条边添加分支标记,并根据分支标记,对处于同一等级的节点进行排序。
需要说明的,本实施例通过基于分支标记,对处于同一等级的节点进行排序,可防止新的用户操作数据与用户历史操作数据因排序不同而导致数据存在差异的情况。例如,当分支标记为数字时,则按照从小到大的顺序对处于同一等级的节点进行排序;又例如,当分支标记为字母时,则按照从前至后的顺序对处于同一等级的节点进行排序
其中,数据树标识信息是指能够唯一确定数据树身份的信息,例如:数字和/或字母等。
分支标记是指能够唯一确定分支身份的信息,例如:数字和/或字母等。固定方向根据数据树结构进行设置。例如,当数据树为上下结构时,则固定方向可为从左至右方向,或者从右至左方向;当数据树为左右结构时,则固定方向为从上至下方向,或者从下至上方向等等,此处对其不作限制。
继续以上述图3a和图3b为例进行说明,假设数据树标识为数字,那么可为第一数据树设置标识信息为1,第二数据树设置标识信息为2,具体如图3c所示。
基于图3c所示可知,第一数据树和第二数据树中均具有分叉,则为第一数据树1和第二数据树2中各分叉分别设置分支标记。例如,假设分支标记为字母,例如小写字母a、b、c等,那么对第一数据树1中各分支添加分支标记,并基于分支标记对处于同一等级的节点进行排序,以得到处理后的第一数据树1,以及对第二数据树2中各分支添加分支标记,并基于分支标记对处于同一等级的节点进行排序,以得到处理后的第二数据树2,具体如图3d所示。
S202,对所述数据树中的每个分支进行哈希计算,得到分支哈希值,并对每个分支的叶子节点进行哈希计算,得到节点哈希值。
继续以上述图3d为例进行说明,根据图3d可知,第一数据树1包括4个分支,分别为:分支a1a11、分支a2a21、分支a2a22和分支a3a31;第二数据树2包括4个分支,分别为:分支b1b11、分支b1b12、分支b2b21和分支b3b31。那么对于第一数据树1而言,可分别对分支a1a11、分支a2a21、分支a2a22和分支a3a31进行哈希计算,以得到分支a1a11的哈希值hasha1a11、分支a2a21的哈希值hasha2a21、分支a2a22的哈希值hasha2a22以及分支a3的哈希值hasha3a31,以及对分支a1a11的叶子节点A111、分支a2a21的叶子节点A21、分支a2a22的叶子节点A22和分支a3a31的叶子节点A31分别进行哈希计算,得到叶子节点A111的哈希值hashA111,叶子节点A21的哈希值hashA21,叶子节点A22的哈希值hashA22以及叶子节点A31的哈希值hashA31,具体如图3e所示。
同理,对于第二数据树2而言,可分别对分支b1b11、分支b1b12、分支b2b21和分支b3b31进行哈希计算,以得到分支b1b11的哈希值hashb1b11、分支b1b12的哈希值hashb1b12、分支b2b21的哈希值hashb2b21以及分支b3b31的哈希值hashb3b31,以及对分支b1b11的叶子节点B11、分支b1b12的叶子节点B12、分支b2的叶子节点B21和分支b3的叶子节点B31分别进行哈希计算,得到叶子节点B11的哈希值hashB11,叶子节点B12的哈希值hashB12,叶子节点B21的哈希值hashB21以及叶子节点B31的哈希值hashB31,具体如图3e所示。
S203,将每个所述分支哈希值作为键,将与每个所述分支哈希值对应的节点哈希值作为值,得到多个键值对。
继续以上述图3e所示的示例进行说明,对于第一数据树1,分支哈希值具体为:hasha1a11、hasha2a21、hasha2a22和hasha3a31,叶子节点哈希值具体为:与hasha1对应的叶子节点哈希值为:hashA111,与hasha2a21对应的叶子节点哈希值为:hashA21,与hasha2a22对应的叶子节点哈希值为:hashA22,以及与hasha3对应的叶子节点哈希值为:hashA31。那么,基于上述分支哈希值和叶子节点哈希值,可得到4个键值对为:{(hasha1a11,hashA111)、(hasha2a21,hashA21)、(hasha2a22,hashA22)、(hasha3a31,hashA31)},具体如图3f。
对于第二数据树2,分支哈希值具体为:hashb1b11、hashb1b12、hashb2b21和hashb3b31,叶子节点哈希值具体为:与hashb1b11对应的叶子节点哈希值:hashB11、与hashb1b12对应的叶子节点哈希值为:hashB12、与hashb2b21对应的叶子节点哈希值为:hashB21和与hashb3b31对应的叶子节点哈希值为:hashB31。那么基于上述分子哈希值和叶子节点哈希值,可得到4个键值对为:{(hashb1b11,hashB11)、(hashb1b12,hashB12)、(hashb2b21,hashB21)、(hashb3b31,hashB31)},具体如图3f。
S204,将多个所述键值对进行拼接,得到拼接结果,并将拼接结果作为处理后的目标页面渲染数据。
示例性的,当数据树的数量为一个时,可根据数据树中的分支标记,将多个键值对进行拼接,得到拼接结果。例如,假设数据树具有2个分支,分别是分支11和分支12,且分支11的键值对为{(key1,value1)},分支12的键值对为{(key2,value2)},那么可按照分支标记从小到大的顺序,将分支11和分支12的键值对进行拼接,得到拼接结果为:(key1,value1)+(key2,value2)。
进一步的,当数据树的数量为多个时,可根据数据树标识,对多个所述数据树进行排序,并基于排序结果,按照从前至后的顺序依次将每个数据树的键值对进行拼接,得到拼接结果。
继续以上述图3f所示示例进行说明,由图3f所示可知数据树有两个,分别为第一数据树1和第二数据树2,那么可得到数据树的排序结果为:第一数据树1和第二数据树2。又因为第一数据树1和第二数据树2分别具有4个分支,那么可按照第一数据树1+第二数据树2的顺序,将第一数据树1的键值对:{(hasha1a11,hashA111)、(hasha2a21,hashA21)、(hasha2a22,hashA22)、(hasha3a31,hashA31)},和第二数据树2的键值对:{(hashb1b11,hashB11)、(hashb1b12,hashB12)、(hashb2b21,hashB21)、(hashb3b31,hashB31)}进行拼接,得到拼接结果为:
(hasha1a11,hashA111)+(hasha2a21,hashA21)+(hasha2a22,hashA22)+(hasha3a31,hashA31)+(hashb1b11,hashB11)+(hashb1b12,hashB12)+(hashb2b21,hashB21)+(hashb3b31,hashB31),具体如图3g所示。
S104,获取与所述处理后的目标页面渲染数据相邻的前一历史页面渲染数据。
S105,若所述前一历史页面渲染数据与所述处理后的目标页面渲染数据不相同,则存储所述处理后的目标页面渲染数据。
S106,若所述前一历史页面渲染数据与所述处理后的目标页面渲染数据相同,则丢弃所述处理后的目标页面渲染数据。
在本实施例中,获取与处理后的目标页面渲染数据相邻的前一历史页面渲染数据时,可通过获取位于第一数据栈中栈顶位置的页面渲染数据,并将该栈顶位置的页面渲染数据作为与处理后的目标页面渲染数据相邻的前一历史页面渲染数据。
实际应用过程中,用户在前端应用展示页面中输入的用户操作数据有时是相同且重复的。那么为了防止重复存储相同用户操作数据,使得存储的数据量过大,增加数据维护难度。本实施例可在执行目标页面渲染数据存储操作之前,可先获取与处理后的目标页面渲染数据相邻的前一历史页面渲染数据。之后,将获取到的前一历史页面渲染数据与处理后的目标页面渲染数据进行比对,以确定上述两个页面渲染数据是否相同。
又因为存储的历史页面渲染数据均是进行降维处理后的数据,因此本实施例获取的前一历史页面渲染数据的结构与处理后的目标页面渲染数据的结构相同。基于上述原因,本实施例将获取到的前一历史页面渲染数据与处理后的目标页面渲染数据进行比对,以确定上述两个页面渲染数据是否相同,具体包括:确定处理后的目标页面渲染数据中每个键是否与前一历史页面渲染数据中每个键相同。其中,若任意键不同,则确定这两个页面渲染数据不相同;若所有键均相同,则进一步确定处理后的目标页面渲染数据中每个值是否与前一历史页面渲染数据中每个值相同。若任意值不同,则确定这两个页面渲染数据不相同;若所有值均相同,则确定这两个页面渲染数据相同。
本实施例中,当确定前一历史页面渲染数据与处理后的目标页面渲染数据相同时,则说明已经存储过与用户操作数据对应的处理后的目标页面渲染数据。此时,可丢弃该处理后的目标页面渲染数据,从而避免重复存储相同的用户操作数据。
当确定前一历史页面渲染数据与处理后的目标页面渲染数据不相同时,说明未存储过与用户操作数据对应的处理后的目标页面渲染数据。此时,可对处理后的目标页面渲染数据进行存储操作;其中,对处理后的目标页面渲染数据进行存储操作,具体为将处理后的目标页面渲染数据存储至第一数据栈中。
也就是说,通过基于哈希键值对,对前一历史页面渲染数据与处理后的目标页面渲染数据进行线性对比,可以快速的确定出上述两个页面渲染数据是否相同。其中,当键值对中任一键或任一值不相同,即可确定上述两个页面渲染数据不相同,从而可对处理后的目标页面渲染数据进行存储操作。当键值对中键和值均相同,则确定上述两个页面渲染数据相同,从而丢弃处理后的目标页面渲染数据,不作存储操作。
本申请实施例提供的用户操作数据存储方法,通过根据用户操作数据,获取目标页面渲染数据,并基于目标页面渲染数据进行页面渲染,之后对目标页面渲染数据进行降维处理,以得到处理后的目标页面渲染数据,并获取与处理后的目标页面渲染数据相邻的前一历史页面渲染数据,确定处理后的目标页面渲染数据与前一历史页面渲染数据是否相同,若不相同则将处理后的目标页面渲染数据进行存储。由此,实现在用户使用前端应用过程中,采集并存储用户操作数据,为前端应用执行回退或恢复操作提供了条件。
通过上述描述可知,本申请实施例在确定处理后的目标页面渲染数据与前一历史页面渲染数据不相同时,将处理后的目标页面渲染数据进行存储操作,以将用户的不同操作数据进行存储,以达到存储用户操作数据的目的。
本实施例在上述实施例的基础上,对根据接收到的用户操作数据,获取目标页面渲染数据进行进一步优化。下面结合图4,对本申请实施例提供的用户操作数据存储方法的上述优化过程进行具体说明。
如图4所示,本申请实施例提供的用户操作数据存储方法可包括如下步骤:
S301,若接收到的所述用户操作数据为回退操作数据或恢复操作数据,则从第一数据栈中获取第一目标页面渲染数据,所述第一目标页面渲染数据为全量数据。
其中,第一数据栈用于存储与用户历史操作数据对应的历史页面渲染数据。
示例性的,当前端应用运行过程中,检测单元检测到用户操作数据之后,可对用户操作数据进行分析,以确定用户操作数据是新操作数据,还是回退或恢复操作数据。其中,当确定用户操作数据为回退或恢复操作数据时,本实施例可根据用户标识,从存储有用户历史操作数据对应历史页面渲染数据的第一数据栈中,获取第一目标页面渲染数据。本实施例中,用户标识是指能够唯一确定用户身份的信息,例如用户ID和用户账号等。
由于回退操作数据可包括跨流程回退和一般回退,恢复操作数据可包括跨流程恢复和一般恢复,那么本实施例根据用户操作数据从第一数据栈中获取第一目标页面渲染数据时,具体包括以下至少一项:
若所述用户操作数据为回退操作数据,且所述回退操作数据的类型为跨流程回退,则从所述第一数据栈中获取所述第一目标页面渲染数据,并将所述第一目标页面渲染数据之前的其他页面渲染数据,依次存储至第二数据栈中;
若所述用户操作数据为回退操作数据,且所述回退操作数据的类型为一般回退,则将所述第一数据栈中位于栈顶位置的页面渲染数据,确定为所述第一目标页面渲染数据;
若所述用户操作数据为恢复操作数据,且所述恢复操作数据的类型为跨流程恢复,则从所述第二数据栈中获取所述第一目标页面渲染数据,将所述第一目标页面渲染数据存储至第一数据栈的栈顶位置,以从所述第一数据栈中获取所述第一目标页面渲染数据,并将所述第一目标页面渲染数据之前的其他页面渲染数据,依次存储至所述第一数据栈中;
若所述用户操作数据为恢复操作数据,且所述恢复操作数据的类型为一般恢复,则将所述第二数据栈中位于栈顶位置的页面渲染数据,确定为所述第一目标页面渲染数据,并将所述第一目标页面渲染数据存储至第一数据栈的栈顶位置,以从所述第一数据栈获取所述第一目标页面渲染数据。
其中,跨流程回退是指从前端应用展示页面的当前状态返回至间隔至少一个状态的任一历史状态。例如,前端应用展示页面状态有5个,分别为状态1、状态2、状态3、状态4和状态5,那么当展示页面当前状态为状态5,那么跨流程回退可为从状态5直接返回至状态1的情况;或者,可从状态5返回至状态3的情况,等等。
一般回退是指从前端应用展示页面的当前状态返回至上一历史状态。继续以上述示例进行说明,假设前端应用展示页面当前状态为状态3,那么一般回退为从状态3返回至状态2的情况。
相应的,跨流程恢复是指对前端应用展示页面的当前状态进行多次修改操作之后,直接将前端应用展示页面从修改后的状态恢复至间隔至少一个状态的任一历史状态。其中,修改操作可以是回退操作、点击操作和/或滑动操作等。例如,前端应用展示页面从状态4进行多次回退操作到达状态1,那么跨流程恢复可直接从状态1恢复至状态4,或者直接从状态1恢复至状态3等等。
一般恢复是指对前端应用展示页面的当前状态进行一次修改操作之后,将前端应用展示页面从修改后的状态恢复至上述当前状态。例如,前端应用展示页面从状态3进行一次回退操作达到状态2,那么一般恢复即为从状态2恢复至状态3。
本申请实施例中,第二数据栈用于存储从第一数据栈中弹出的其他页面渲染数据,以为用户的回退或恢复操作数据提供条件。
具体使用过程中,前端应用展示界面会以列表形式显示第一数据栈和第二数据栈,那么当用户需要回退操作时,用户操作数据存储设备可根据用户在列表中的选择操作,在第一数据栈中选择要回退的第一目标页面渲染数据。其中,当回退操作是跨流程回退时,那么从第一数据栈中选择的第一目标页面渲染数据之前还可能存在其他页面渲染数据。此时,为了能够基于选择的第一目标页面渲染数据进行页面渲染,本实施例可将其他页面渲染数据按照先进后出的原则依次存储至第二数据栈中,以使第一目标页面渲染数据处于第一数据栈的栈顶位置,从而可直接从第一数据栈中获取位于栈顶位置的第一目标页面渲染数据。当回退操作是一般回退时,可直接将第一数据栈中位于栈顶位置的页面渲染数据,确定为第一目标页面渲染数据。
当用户需要恢复操作时,用户操作数据存储设备可根据用户在列表中的选择操作,在第二数据栈中选择要恢复的第一目标页面渲染数据。其中,当恢复操作是跨流程恢复时,那么从第二数据栈中选择的第一目标页面渲染数据之前还可能存在其他页面渲染数据。此时,为了能够基于选择的第一目标页面渲染数据进行页面渲染,本实施例可将其他页面渲染数据按照先进后出的原则依次存储至第一数据栈中,并将第一目标页面渲染数据存储至第一数据栈的栈顶位置,以使用户操作数据存储设备可直接从第一数据栈中获取位于栈顶位置的第一目标页面渲染数据。当恢复操作是一般恢复时,可将第二数据栈中位于栈顶位置的页面渲染数据确定为第一目标页面渲染数据,同时将该第一目标页面渲染数据存储至第一数据栈的栈顶位置,以使用户操作数据存储设备可直接从第一数据栈中获取位于栈顶位置的第一目标页面渲染数据。
S302,根据所述第一目标页面渲染数据进行页面渲染,以响应用户操作请求。
因本实施例中存储的与用户操作数据对应的页面渲染数据是经过降维处理的数据,因此在基于上述S301获取到第一目标页面渲染数据之后,本实施例还需将降维处理后的第一目标页面渲染数据进行数据适配,以将处理后的第一目标页面渲染数据还原成原始数据结构。然后,基于原始数据结构的第一目标页面渲染数据进行页面渲染。
具体实现时,可通过调用数据适配接口,以从服务器端获取处理后的第一目标页面渲染数据对应的原始数据结构,并基于原始数据结构的第一目标页面渲染数据进行页面渲染。
S303,对所述第一目标页面渲染数据进行降维处理,得到处理后的第一目标页面渲染数据。
在前端应用展示页面渲染结束之后,本实施例还可对原始数据结构的第一目标页面渲染数据进行降维处理,以得到处理后的第一目标渲染数据,以为后续数据存储奠定基础。其中,本实施例对第一目标渲染数据进行降维处理的实现原理和过程,与前述实施例S103相同,具体实现过程参见前述实施例中的S103,此处对其不作过多赘述。
S304,获取与所述处理后的第一目标页面渲染数据相邻的前一历史页面渲染数据。
S305,若所述前一历史页面渲染数据与所述处理后的第一目标页面渲染数据不相同,则存储所述处理后的第一目标页面渲染数据。
S306,若所述前一历史页面渲染数据与所述处理后的第一目标页面渲染数据相同,则丢弃所述处理后的第一目标页面渲染数据。
示例性的,当确定用户操作数据为回退或恢复操作时,说明用户输入的操作数据相较于存储的用户操作数据而言是相同且重复的。那么对比获取到的前一历史页面渲染数据和处理后的第一目标页面渲染数据,得到的结果也应该是相同的。那么为了避免重复存储相同用户操作数据,本实施例在确定处理后的第一目标页面渲染数据与前一历史页面渲染数据相同时,对处理后的第一目标页面渲染数据进行丢弃,并继续执行接收用户输入的用户操作数据,对用户操作数据进行分析以及处理的操作。
本申请实施例提供的用户操作数据存储方法,通过根据用户操作数据,获取目标页面渲染数据,并基于目标页面渲染数据进行页面渲染,之后对目标页面渲染数据进行降维处理,以得到处理后的目标页面渲染数据,并获取与处理后的目标页面渲染数据相邻的前一历史页面渲染数据,确定处理后的目标页面渲染数据与前一历史页面渲染数据是否相同,若不相同则将处理后的目标页面渲染数据进行存储。由此,实现在用户使用前端应用过程中,采集并存储用户操作数据,为前端应用执行回退或恢复操作提供了条件。此外,本实施例还可基于用户操作数据的类型,采用不同的方式获取目标页面渲染数据进行页面渲染,实现过程简洁高效,能够有效提高前端应用的使用量。
通过上述描述可知,本申请实施例在确定处理后的目标页面渲染数据与前一历史页面渲染数据不相同时,将处理后的目标页面渲染数据进行存储操作,以将用户的不同操作数据进行存储,以达到存储用户操作数据的目的。
本实施例在上述实施例的基础上,对根据接收到的用户操作数据,获取目标页面渲染数据进行优化。具体为:将“根据接收到的用户操作数据,获取目标页面渲染数据”优化为:“若接收到的所述用户操作数据为拖拽操作数据和/或滑动操作数据,则调用数据适配接口,以从服务器端获取第一目标页面渲染数据”。下面结合图5,对本申请实施例提供的用户操作数据存储方法的上述优化过程进行具体说明。
如图5所示,本申请实施例提供的用户操作数据存储方法可包括如下步骤:
S401,若接收到的所述用户操作数据为拖拽操作数据和/或滑动操作数据,则调用数据适配接口,以从服务器端获取第二目标页面渲染数据,所述第二目标页面渲染数据为全量数据。
示例性的,当前端应用运行过程中,检测单元检测到用户操作数据之后,可对用户操作数据进行分析,以确定用户操作数据是新操作数据,还是回退或恢复操作数据。其中,当确定用户操作数据为拖拽操作数据和/或滑动操作数据等新操作数据时,说明本实施例中并未存储过该新操作数据对应的页面渲染数据。为此,本实施例可根据用户新操作数据,直接调用数据适配接口,以从服务器端获取第二目标页面渲染数据。
S402,根据所述第二目标页面渲染数据进行页面渲染,以响应用户操作请求。
S403,对所述第二目标页面渲染数据进行降维处理,得到处理后的第二目标页面渲染数据。
其中,本实施例S402至S403的实现原理和过程,与前述实施例S102至S103相同,具体实现过程参见前述实施例中的S102至S103,此处对其不作过多赘述。
S404,获取与所述处理后的第二目标页面渲染数据相邻的前一历史页面渲染数据。
S405,若所述前一历史页面渲染数据与所述处理后的第二目标页面渲染数据不相同,则存储所述处理后的第二目标页面渲染数据。
S406,若所述前一历史页面渲染数据与所述处理后的第二目标页面渲染数据相同,则丢弃所述处理后的第二目标页面渲染数据。
示例性的,当确定出接收到的用户操作数据为新操作数据时,说明用户并未输入重复且相同的操作数据。那么对比获取到的前一历史页面渲染数据和处理后的第二目标页面渲染数据,得到的结果应该是不相同。那么可将处理后的第二目标页面渲染数据进行存储,以为后续前端应用进行回退操作依据。其中,对处理后的第二目标页面渲染数据进行存储时,具体是将处理后的第二目标页面渲染数据存储至第一数据栈中。
本申请实施例提供的用户操作数据存储方法,通过根据用户操作数据,获取目标页面渲染数据,并基于目标页面渲染数据进行页面渲染,之后对目标页面渲染数据进行降维处理,以得到处理后的目标页面渲染数据,并获取与处理后的目标页面渲染数据相邻的前一历史页面渲染数据,确定处理后的目标页面渲染数据与前一历史页面渲染数据是否相同,若不相同则将处理后的目标页面渲染数据进行存储。由此,实现在用户使用前端应用过程中,采集并存储用户操作数据,为前端应用执行回退或恢复操作提供了条件。
下面参照附图6,对本申请实施例提出的一种用户操作数据存储装置进行描述。图6是本申请实施例提供的一种用户操作数据存储装置的示意性框图。
其中,该用户操作数据存储装置500包括:第一获取模块510、页面渲染模块520、数据处理模块530、第二获取模块540和数据存储模块550。
其中,第一获取模块510,用于根据接收到的用户操作数据,获取目标页面渲染数据,所述目标页面渲染数据为全量数据;
页面渲染模块520,用于根据所述目标页面渲染数据进行页面渲染,以响应用户操作请求;
数据处理模块530,用于对所述目标页面渲染数据进行降维处理,得到处理后的目标页面渲染数据;
第二获取模块540,用于获取与所述处理后的目标页面渲染数据相邻的前一历史页面渲染数据;
数据存储模块550,用于若所述前一历史页面渲染数据与所述处理后的目标页面渲染数据不相同,则存储所述处理后的目标页面渲染数据。
本申请实施例的一种可选实现方式,用户操作数据包括以下至少一种:回退操作数据、恢复操作数据、拖拽操作数据以及滑动操作数据。
本申请实施例的一种可选实现方式,第一获取模块510,具体用于:
若接收到的所述用户操作数据为回退操作数据或恢复操作数据,则从第一数据栈中获取第一目标页面渲染数据;
若接收到的所述用户操作数据为拖拽操作数据和/或滑动操作数据,则调用数据适配接口,以从服务器端获取第二目标页面渲染数据。
本申请实施例的一种可选实现方式,第一获取模块510用于执行下述至少一项:
若所述用户操作数据为回退操作数据,且所述回退操作数据的类型为跨流程回退,则从所述第一数据栈中获取所述第一目标页面渲染数据,并将所述第一目标页面渲染数据之前的其他页面渲染数据,依次存储至第二数据栈中;
若所述用户操作数据为回退操作数据,且所述回退操作数据的类型为一般回退,则将所述第一数据栈中位于栈顶位置的页面渲染数据,确定为所述第一目标页面渲染数据;
若所述用户操作数据为恢复操作数据,且所述恢复操作数据的类型为跨流程恢复,则从所述第二数据栈中获取所述第一目标页面渲染数据,将所述第一目标页面渲染数据存储至第一数据栈的栈顶位置,以从所述第一数据栈中获取所述第一目标页面渲染数据,并将所述第一目标页面渲染数据之前的其他页面渲染数据,依次存储至所述第一数据栈中;
若所述用户操作数据为恢复操作数据,且所述恢复操作数据的类型为一般恢复,则将所述第二数据栈中位于栈顶位置的页面渲染数据,确定为所述第一目标页面渲染数据,并将所述第一目标页面渲染数据存储至第一数据栈的栈顶位置,以从所述第一数据栈获取所述第一目标页面渲染数据。
本申请实施例的一种可选实现方式,数据处理模块530,具体用于:
对所述目标页面渲染数据进行降维处理,得到处理后的目标页面渲染数据,包括:
基于所述目标页面渲染数据,构建至少一个数据树;
对所述数据树中的每个分支进行哈希计算,得到分支哈希值,并对每个分支的叶子节点进行哈希计算,得到节点哈希值;
将每个所述分支哈希值作为键,将与每个所述分支哈希值对应的节点哈希值作为值,得到多个键值对;
将多个所述键值对进行拼接,得到拼接结果,并将拼接结果作为处理后的目标页面渲染数据。
本申请实施例的一种可选实现方式,数据处理模块530,还用于:
从所述目标页面渲染数据中选取任一数据,作为第一数据;
遍历所述目标页面渲染数据,得到与所述第一数据关联的目标数据;
以所述第一数据和所述目标数据为节点,以所述第一数据和所述目标数据之间的连接关系为边,按照数据之间的连接关系构建第一数据树;
若确定所述目标页面渲染数据中存在未处于所述第一数据树的其他数据,则以任一其他数据作为第一数据,继续遍历所述目标页面渲染数据,以构建第二数据树,直至所述目标页面渲染数据中不存在未处理的数据为止。
本申请实施例的一种可选实现方式,数据处理模块530,还用于:
若所述数据树的数量为多个,则为所述数据树设置标识信息;
其中,当所述数据树中任一节点连接至少两条边时,按照固定方向为所述至少两条边添加分支标记,并根据所述分支标记,对处于同一等级的节点进行排序。
本申请实施例的一种可选实现方式,数据处理模块530,还用于:
若所述数据树的数量为一个,则根据所述数据树中分支标记,将多个所述键值对进行拼接,得到拼接结果;
若所述数据树的数量为多个,则根据所述数据树标识,对多个所述数据树进行排序,并基于排序结果,将每个数据树的键值对进行拼接,得到拼接结果。
本申请实施例的一种可选实现方式,第二获取模块540,具体用于:
获取位于第一数据栈中栈顶位置的页面渲染数据;
将所述页面渲染数据作为与所述处理后的目标页面渲染数据相邻的前一历史页面渲染数据。
应理解的是,用户操作数据存储装置实施例与用户操作数据存储方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图6所示的用户操作数据存储装置500可以执行图1对应的方法实施例,并且用户操作数据存储装置500中的各个模块的前述和其它操作和/或功能分别为了实现图1中的各个方法中的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的用户操作数据存储装置500。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的用户操作数据存储方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的用户操作数据存储方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图7是本申请实施例提供的一种用户操作数据存储设备600的示意性框图。
如图7所示,该用户操作数据存储设备600可包括:
存储器610和处理器620,该存储器610用于存储计算机程序,并将该程序代码传输给该处理器620。换言之,该处理器620可以从存储器610中调用并运行计算机程序,以实现本申请实施例中的用户操作数据存储方法。
例如,该处理器620可用于根据该计算机程序中的指令执行上述用户操作数据存储方法实施例。
在本申请的一些实施例中,该处理器620可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器610包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器610中,并由该处理器620执行,以完成本申请提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该用户操作数据存储设备中的执行过程。
如图7所示,该用户操作数据存储设备600还可包括:
收发器630,该收发器630可连接至该处理器620或存储器610。
其中,处理器620可以控制该收发器630与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器630可以包括发射机和接收机。收发器630还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该用户操作数据存储设备600中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述实施例的用户操作数据存储方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上该,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (12)
1.一种用户操作数据存储方法,其特征在于,应用于前端应用,所述方法包括:
根据接收到的用户操作数据,获取目标页面渲染数据,所述目标页面渲染数据为全量数据;
根据所述目标页面渲染数据进行页面渲染,以响应用户操作请求;
对所述目标页面渲染数据进行降维处理,得到处理后的目标页面渲染数据;
获取与所述处理后的目标页面渲染数据相邻的前一历史页面渲染数据;
若所述前一历史页面渲染数据与所述处理后的目标页面渲染数据不相同,则存储所述处理后的目标页面渲染数据。
2.根据权利要求1所述的方法,其特征在于,用户操作数据包括以下至少一种:回退操作数据、恢复操作数据、拖拽操作数据以及滑动操作数据。
3.根据权利要求2所述的方法,其特征在于,根据接收到的用户操作数据,获取目标页面渲染数据,包括:
若接收到的所述用户操作数据为回退操作数据或恢复操作数据,则从第一数据栈中获取第一目标页面渲染数据;
若接收到的所述用户操作数据为拖拽操作数据和/或滑动操作数据,则调用数据适配接口,以从服务器端获取第二目标页面渲染数据。
4.根据权利要求3所述的方法,其特征在于,若所述用户操作数据为回退操作数据或恢复操作数据,则从第一数据栈中获取第一目标页面渲染数据,包括下述至少一项:
若所述用户操作数据为回退操作数据,且所述回退操作数据的类型为跨流程回退,则从所述第一数据栈中获取所述第一目标页面渲染数据,并将所述第一目标页面渲染数据之前的其他页面渲染数据,依次存储至第二数据栈中;
若所述用户操作数据为回退操作数据,且所述回退操作数据的类型为一般回退,则将所述第一数据栈中位于栈顶位置的页面渲染数据,确定为所述第一目标页面渲染数据;
若所述用户操作数据为恢复操作数据,且所述恢复操作数据的类型为跨流程恢复,则从所述第二数据栈中获取所述第一目标页面渲染数据,将所述第一目标页面渲染数据存储至第一数据栈的栈顶位置,以从所述第一数据栈中获取所述第一目标页面渲染数据,并将所述第一目标页面渲染数据之前的其他页面渲染数据,依次存储至所述第一数据栈中;
若所述用户操作数据为恢复操作数据,且所述恢复操作数据的类型为一般恢复,则将所述第二数据栈中位于栈顶位置的页面渲染数据,确定为所述第一目标页面渲染数据,并将所述第一目标页面渲染数据存储至第一数据栈的栈顶位置,以从所述第一数据栈获取所述第一目标页面渲染数据。
5.根据权利要求1所述的方法,其特征在于,对所述目标页面渲染数据进行降维处理,得到处理后的目标页面渲染数据,包括:
基于所述目标页面渲染数据,构建至少一个数据树;
对所述数据树中的每个分支进行哈希计算,得到分支哈希值,并对每个分支的叶子节点进行哈希计算,得到节点哈希值;
将每个所述分支哈希值作为键,将与每个所述分支哈希值对应的节点哈希值作为值,得到多个键值对;
将多个所述键值对进行拼接,得到拼接结果,并将拼接结果作为处理后的目标页面渲染数据。
6.根据权利要求5所述的方法,其特征在于,基于所述目标页面渲染数据,构建至少一个数据树,包括:
从所述目标页面渲染数据中选取任一数据,作为第一数据;
遍历所述目标页面渲染数据,得到与所述第一数据关联的目标数据;
以所述第一数据和所述目标数据为节点,以所述第一数据和所述目标数据之间的连接关系为边,按照数据之间的连接关系构建第一数据树;
若确定所述目标页面渲染数据中存在未处于所述第一数据树的其他数据,则以任一其他数据作为第一数据,继续遍历所述目标页面渲染数据,以构建第二数据树,直至所述目标页面渲染数据中不存在未处理的数据为止。
7.根据权利要求5所述的方法,其特征在于,构建至少一个数据树之后,还包括:
若所述数据树的数量为多个,则为所述数据树设置标识信息;
其中,当所述数据树中任一节点连接至少两条边时,按照固定方向为所述至少两条边添加分支标记,并根据所述分支标记,对处于同一等级的节点进行排序。
8.根据权利要求5所述的方法,其特征在于,将多个所述键值对进行拼接,得到拼接结果,包括:
若所述数据树的数量为一个,则根据所述数据树中分支标记,将多个所述键值对进行拼接,得到拼接结果;
若所述数据树的数量为多个,则根据所述数据树标识,对多个所述数据树进行排序,并基于排序结果,将每个数据树的键值对进行拼接,得到拼接结果。
9.根据权利要求1所述的方法,其特征在于,获取与所述处理后的目标页面渲染数据相邻的前一历史页面渲染数据,包括:
获取位于第一数据栈中栈顶位置的页面渲染数据;
将所述页面渲染数据作为与所述处理后的目标页面渲染数据相邻的前一历史页面渲染数据。
10.一种用户操作数据存储装置,其特征在于,配置于前端应用,包括:
第一获取模块,用于根据接收到的用户操作数据,获取目标页面渲染数据,所述目标页面渲染数据为全量数据;
页面渲染模块,用于根据所述目标页面渲染数据进行页面渲染,以响应用户操作请求;
数据处理模块,用于对所述目标页面渲染数据进行降维处理,得到处理后的目标页面渲染数据;
第二获取模块,用于获取与所述处理后的目标页面渲染数据相邻的前一历史页面渲染数据;
数据存储模块,用于若所述前一历史页面渲染数据与所述处理后的目标页面渲染数据不相同,则存储所述处理后的目标页面渲染数据。
11.一种用户操作数据存储设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1至9中任一项所述的用户操作数据存储方法。
12.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至9中任一项所述的用户操作数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111624184.5A CN114282137A (zh) | 2021-12-28 | 2021-12-28 | 用户操作数据存储方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111624184.5A CN114282137A (zh) | 2021-12-28 | 2021-12-28 | 用户操作数据存储方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114282137A true CN114282137A (zh) | 2022-04-05 |
Family
ID=80877190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111624184.5A Pending CN114282137A (zh) | 2021-12-28 | 2021-12-28 | 用户操作数据存储方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114282137A (zh) |
-
2021
- 2021-12-28 CN CN202111624184.5A patent/CN114282137A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9942349B2 (en) | Incremental browser-based device fingerprinting | |
US9215246B2 (en) | Website scanning device and method | |
CN108985934B (zh) | 区块链修改方法和装置 | |
CN107341258A (zh) | 一种日志数据采集方法及系统 | |
CN111695051A (zh) | 基于扫码的页面访问方法、装置、电子设备及存储介质 | |
US10678610B2 (en) | Using and updating topological relationships amongst a set of nodes in event clustering | |
CN110392046B (zh) | 网络访问的异常检测方法和装置 | |
US20200133916A1 (en) | Method, device and computer readable medium for accessing files | |
US20230061007A1 (en) | Identification and retrieval of supplemental information for runbook operations | |
CN110795166B (zh) | 一种数据处理方法及装置 | |
US20190050672A1 (en) | INCREMENTAL AUTOMATIC UPDATE OF RANKED NEIGHBOR LISTS BASED ON k-th NEAREST NEIGHBORS | |
CN113918437A (zh) | 用户行为数据分析方法、装置、计算机设备和存储介质 | |
CN111291300B (zh) | 网页数据处理方法、装置、网页系统及服务器 | |
CN110851708B (zh) | 负样本的抽取方法、装置、计算机设备和存储介质 | |
CN114282137A (zh) | 用户操作数据存储方法、装置、设备及存储介质 | |
US20130204839A1 (en) | Validating Files Using a Sliding Window to Access and Correlate Records in an Arbitrarily Large Dataset | |
CN109255238B (zh) | 终端威胁检测与响应方法及引擎 | |
CN108304301B (zh) | 记录用户行为轨迹的方法及装置 | |
CN116361153A (zh) | 固件代码的测试方法、装置、电子设备、存储介质 | |
CN115412336A (zh) | 联盟链账本篡改攻击检测方法、装置及电子设备 | |
CN114143308A (zh) | 文件上传信息处理方法、装置、计算机设备及存储介质 | |
CN115221360A (zh) | 树形结构配置方法和系统 | |
CN108319600B (zh) | 一种数据挖掘方法及装置 | |
CN111324505B (zh) | 一种日志采集方法、装置、电子设备及存储介质 | |
CN116628654B (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 |