CN112799948A - 网页数据处理方法、装置、电子设备及存储介质 - Google Patents
网页数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112799948A CN112799948A CN202110152288.4A CN202110152288A CN112799948A CN 112799948 A CN112799948 A CN 112799948A CN 202110152288 A CN202110152288 A CN 202110152288A CN 112799948 A CN112799948 A CN 112799948A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- queue
- difference
- historical
- 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
- 238000003672 processing method Methods 0.000 title abstract description 8
- 238000000034 method Methods 0.000 claims abstract description 77
- 238000012545 processing Methods 0.000 claims abstract description 18
- 238000011084 recovery Methods 0.000 claims description 46
- 238000013500 data storage Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种网页数据处理方法、装置、电子设备及存储介质,方法应用于配置有浏览器的客户端设备,浏览器配置有历史数据队列;方法包括:响应针对于浏览器第一当前网页上的第一源数据的数据更新请求,获取第一源数据及数据更新请求对应的目标数据间的差异数据;将差异数据存储于历史数据队列中;变更第一当前网页的第一源数据为目标数据。本申请通过将目标数据与源数据间的差异数据存储于历史数据队列中,可以减少大量冗余数据,减少页面占用的内存空间,避免浏览器进入假死状态的情况发生,同时还可以对历史数据进行完整追溯。
Description
技术领域
本申请涉及软件测试技术领域,尤其是涉及一种网页数据处理方法、装置、电子设备及存储介质。
背景技术
浏览器中追踪数据变更通常的做法是:在数据变更之前,把旧数据复制一份,存储在历史数据队列中。然而,这种方式记录是的一个完整的数据,即使数据变更范围很小,记录的也是一个完整的数据,当记录的数据量比较大的时候,容易造成存储历史数据的队列过大,占用的内存飙升,甚至导致浏览器进入假死状态,为了避免这种情况发生,一般采用限制记录数据的最大字长度的方式,这样的方式又会造成部分历史数据被丢弃,无法进行完整地追溯。
发明内容
本申请的目的在于提供一种网页数据处理方法、装置、电子设备及存储介质,可以减少大量冗余数据,减少页面占用的内存空间,避免浏览器进入假死状态的情况发生,同时还可以对历史数据进行完整追溯。
第一方面,本申请实施例提供一种网页数据处理方法,该方法应用于配置有浏览器的客户端设备,方法包括:响应针对于浏览器第一当前网页上的第一源数据的数据更新请求,获取第一源数据与数据更新请求对应的目标数据之间的差异数据;将差异数据存储于历史数据队列中;变更第一当前网页的第一源数据为目标数据。
进一步的,上述第一源数据与目标数据均为键值对形式;上述获取第一源数据与数据更新请求对应的目标数据之间的差异数据的步骤,包括:查找第一源数据与目标数据中具有不同键值的相同键;基于查找到的相同键分别对应的不同键值,生成目标数据与第一源数据间的差异数据。
进一步的,上述基于查找到的相同键分别对应的不同键值,生成目标数据与第一源数据间的差异数据的步骤,包括:将第一源数据中所述相同键对应的第一键值和目标数据中相同键对应的第二键值组合为新键值,将新键值与相同键组成相同键对应的新键值对;根据多个相同键分别对应的新键值对,生成目标数据与第一源数据间的差异数据。
进一步的,上述将差异数据存储于历史数据队列中的步骤之后,还包括:更新历史数据队列的游标位置,以使历史数据队列的游标指向差异数据。
进一步的,上述浏览器还配置有Web Worker线程;上述获取第一源数据与数据更新请求对应的目标数据之间的差异数据,将差异数据存储于历史数据队列中的步骤,包括:通过浏览器的主线程将第一源数据和目标数据发送至Web Worker线程;通过Web Worker线程确定目标数据和第一源数据之间的差异数据;通过Web Worker线程将差异数据存储于历史数据队列中。
进一步的,上述方法还包括:响应针对于浏览器的第二当前网页的页面恢复请求,获取第二当前网页的第二源数据及页面恢复请求中携带的步数标识;其中,页面恢复请求包括:回滚请求或撤销请求;根据步数标识,从历史数据队列中查找步数标识对应的目标差异数据;基于第二源数据和目标差异数据,确定页面恢复请求对应的目标恢复数据;变更第二源数据为目标恢复数据。
进一步的,上述从历史数据队列中查找步数标识对应的目标差异数据的步骤,包括:以历史数据队列中游标当前所在位置开始,查找步数标识对应数量的差异数据;将步数标识对应数量的差异数据确定为步数标识对应的目标差异数据。
进一步的,上述以历史数据队列中游标当前所在位置开始,查找步数标识对应数量的差异数据的步骤,包括:如果页面恢复请求为回滚请求,从历史数据队列中游标当前所在位置开始,在历史数据队列中向前查找步数标识对应数量的差异数据。
进一步的,在上述从所述历史数据队列中游标当前所在位置开始,在所述历史数据队列中向前查找所述步数标识对应数量的差异数据的步骤之后,方法还包括:如果页面恢复请求为撤销请求,从历史数据队列中游标当前所在位置开始,在历史数据队列中向后查找步数标识对应数量的差异数据。
进一步的,上述目标差异数据包括:按照队列位置顺序排列的多个差异数据;上述基于第二源数据和目标差异数据,确定页面恢复请求对应的目标恢复数据的步骤,包括:按照队列位置先后顺序依次从历史数据队列中提取差异数据;按照队列位置先后顺序,均基于第二源数据和提取得到的差异数据,逐次更新第二源数据,得到目标恢复数据。
进一步的,上述浏览器配置有Web Worker线程;上述根据步数标识,从历史数据队列中查找步数标识对应的目标差异数据,基于第二源数据和目标差异数据,确定页面恢复请求对应的目标恢复数据的步骤,包括:通过浏览器的主线程将步数标识和第二源数据发送至Web Worker线程;通过Web Worker线程从历史数据队列中查找步数标识对应的历史差异数据;通过Web Worker线程基于第二源数据和历史差异数据,计算页面恢复请求对应的目标恢复数据。
第二方面,本申请实施例还提供一种网页数据处理装置,装置应用于配置有浏览器的客户端设备,装置包括:差异数据获取模块,用于响应针对于浏览器第一当前网页上的第一源数据的数据更新请求,获取第一源数据与数据更新请求对应的目标数据之间的差异数据;数据存储模块,用于将差异数据存储于历史数据队列中;数据更新模块,用于变更第一当前网页的第一源数据为目标数据。
第三方面,本申请实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述第一方面所述的方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述第一方面所述的方法。
本申请实施例提供的网页数据处理方法、装置、电子设备及存储介质中,方法应用于配置有浏览器的客户端设备,该方法包括:响应针对于浏览器第一当前网页上的第一源数据的数据更新请求,获取第一源数据与数据更新请求对应的目标数据之间的差异数据;将差异数据存储于历史数据队列中;并变更第一当前网页的第一源数据为目标数据。本申请实施例通过将目标数据与源数据间的差异数据存储于历史数据队列中,可以减少大量冗余数据,减少页面占用的内存空间,避免浏览器进入假死状态的情况发生,同时还可以对历史数据进行完整追溯。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种网页数据处理方法的流程图;
图2为本申请实施例提供的一种差异数据获取方法的流程图;
图3为本申请实施例提供的一种第一源数据和目标数据的示意图;
图4为本申请实施例提供的一种差异数据的示意图;
图5为本申请实施例提供的一种时序图;
图6为本申请实施例提供的一种回滚撤销方法流程图;
图7为本申请实施例提供的一种网页数据处理装置的结构框图;
图8为本申请实施例提供的另一种网页数据处理装置的结构框图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合实施例对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
浏览器中追踪数据变更通常的做法是:在数据变更之前,把旧数据复制一份,存储在历史数据队列中。然而,这种方式记录是的一个完整的数据,即使数据变更范围很小,记录的也是一个完整的数据,当记录的数据量比较大的时候,容易造成存储历史数据的队列过大,占用的内存飙升,甚至导致浏览器进入假死状态,为了解决这个问题,现有技术中通过会选择限制历史队列记录数据的最大长度,具体的实现方式如下:
创建一个全局的历史对象,该历史对象主要定义一个存储数据的队列、当前历史数据指示的游标、最大可存储长度、将数据添加到历史队列中的方法以及删除历史队列数据的方法。当用户进行数据变更的时候,在变更数据之前触发添加数据到历史队列的方法,把当前的数据添加到历史队列中,再执行数据的变更。当需要进行历史数据回滚或撤销时,通过历史数据指示的游标位置的移动,可以实现历史数据回滚或撤销。当历史队列数据存储长度达到最大限制时,需要添加数据队列中时,首先需要先把最早一个历史数据删除,再进行把数据存储到历史队列中,这样容易造成部分历史数据丢失。
综上,现有技术方案是把数据完整存储到历史队列,随着用户操作次数的增加,存储数据的历史队列也越多,容易造成大量的冗余数据。当这个冗余数据比较庞大的时候,就会导致浏览器页面占用的内存飙升,严重的时候,会导致浏览器进入假死状态,此时用户无法进行任何操作。为了避免发生浏览器假死这种情况,不得不限制历史队列记录数据的最大长度,这样又会造成部分历史数据丢失,无法进行完整地追溯。
基于此,本申请实施例提供一种网页数据处理方法、装置、电子设备及存储介质,可以减少大量冗余数据,减少页面占用的内存空间,避免浏览器进入假死状态的情况发生,同时还可以对历史数据进行完整追溯。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种版本的环境部署方法进行详细介绍。
图1为本申请实施例提供的一种网页数据处理方法的流程图,该方法应用于配置有浏览器的客户端设备,比如,电脑、智能手机、iPad等。本申请实施例提供的方法具体包括以下步骤:
步骤S102,响应针对于浏览器第一当前网页上的第一源数据的数据更新请求,获取第一源数据与数据更新请求对应的目标数据之间的差异数据。
上述数据更新请求目的是对第一当前网页上的第一源数据进行数据修改、更新,对应于update命令。当用户对浏览器第一当前网页上的第一源数据进行数据更新操作时,即发起了对第一源数据的数据更新请求,浏览器首先获取数据更新请求对应的目标数据,也就是变更后的数据,然后获取到目标数据和第一源数据间的的差异数据。该差异数据为基于目标数据和第一源数据中相同键对应的不同键值确定的。差异数据的具体获取过程可参见后述内容。
步骤S104,将差异数据存储于历史数据队列中。
获取第一源数据及数据更新请求对应的目标数据间的差异数据,并将差异数据存储于历史数据队列中的过程,可以利用浏览器上的主线程执行,也可以是利用浏览器上的主线程和Web Worker线程共同完成。在此不做具体限定。
步骤S106,变更第一当前网页的第一源数据为目标数据。
在获取到第一源数据及数据更新请求对应的目标数据间的差异数据后,即可进行对第一源数据的变更过程,即变更第一当前网页的第一源数据为目标数据。
需要说明的是,上述步骤S104和步骤S106并确定的先后顺序,谁先谁后均可以,甚至也可以同时进行。
本申请实施例提供的网页数据处理方法,应用于配置有浏览器的客户端设备,浏览器配置有历史数据队列;该方法包括:响应针对于浏览器第一当前网页上的第一源数据的数据更新请求,获取第一源数据与数据更新请求对应的目标数据之间的差异数据;将差异数据存储于历史数据队列中;并变更第一当前网页的第一源数据为目标数据。本申请实施例通过将目标数据与源数据间的差异数据存储于历史数据队列中,可以减少大量冗余数据,减少页面占用的内存空间,避免浏览器进入假死状态的情况发生,同时还可以对历史数据进行完整追溯。
在一种可能的实施方式中,上述第一源数据与目标数据均为键值对形式;上述获取第一源数据与数据更新请求对应的目标数据之间的差异数据的步骤,可参考图2所示的差异数据获取方法的流程图实现:
步骤S202,查找第一源数据与目标数据中具有不同键值的相同键。
基于深度递归遍历算法对第一源数据和目标数据进行扫描,对比第一源数据和目标数据相同键对应的键值是否相同,找到其中存在不同键值的相同键。如图3所示,第一源数据为数据A,目标数据为数据A1,基于具有不同键值的相同键为:height和pages。
步骤S204,基于查找到的相同键分别对应的不同键值,生成目标数据与第一源数据之间的差异数据。
具体的,将第一源数据中相同键对应的第一键值和目标数据中相同键对应的第二键值组合为新键值,将新键值与相同键组成相同键对应的新键值对;根据多个相同键分别对应的新键值对,生成目标数据与第一源数据间的差异数据。
图4示出了上述数据A与数据A1间的差异数据diffMap。其中,相同键height在第一源数据与目标数据中的不同键值“667”“1334”组合为新键值{oldVal:667,newVal:1334},由新键值与相同键height组成相同键对应的新键值对:[‘height’]:{oldVal:667,newVal:1334},同理,相同键pages也会生成对应的新键值对,然后就可以得到数据A和数据A1间的差异数据diffMap,如图4中所示的例子。
在上述将差异数据存储于历史数据队列中的步骤之后,还包括:更新历史数据队列的游标位置,以使历史数据队列的游标指向差异数据。比如,将上述数据A和数据A1间的差异数据diffMap存储于历史数据队列中后,同时将队列游标指向该差异数据diffMap。
浏览器中,JavaScript是单线程执行的,若把复杂的计算过程放在主线程中执行,那么会造成主线程阻塞,影响到用户的操作。因此,本申请实施例中还引入Web Worker线程,实现JavaScript多线程能力,Web Worker线程独立于主线程,通过浏览器提供事件API与主线程进行通信,不会造成主线程阻塞。
具体的实现过程如图5所示时序图,用户发起数据数据更新请求,主线程将第一源数据和目标数据发传递给Web Worker线程,Web Worker线程确定目标数据和第一源数据的差异数据,并将差异数据存储于历史数据队列中。主线程进行数据更新操作,更新UI网页显示给用户。具体的差异数据确定过程可以参见前述内容,在此不再赘述。
由于上述数据A更新为A1的过程中,历史数据队列中记录了差异数据diffMap,因此,当知道数据A时,可以结合diffMap推出数据A1,同理A1已知,也可以推出数据A。推理可得:
由数据A0=>A1=>A2=>A(n-1)=>An,那么只需记录0到n的差异数据对象,An为当前最新的数据,那么可以通过和0到n的差异对象进行逆运算,可以计算出A0的完整数据。这个过程中,只记录变更的差异数据,大大减少了数据段的冗余。当数据比较庞大而更改的范围小的时候,该算法的收益就越高。
如本申请实施例下述的回滚和撤销操作就会涉及到上述逆运算过程,在本申请实施例中,上述方法还可以包括对用户的回滚和撤销请求的响应过程,参见图6所示的方法流程图:
步骤S602,响应针对于浏览器的第二当前网页的页面恢复请求,获取第二当前网页的第二源数据及页面恢复请求中携带的步数标识;其中,页面恢复请求包括:回滚请求或撤销请求;
上述页面恢复请求目标是对第二当前网页的状态进行变更,也就是使第二当前网页恢复到某一个目标页面。上述页面恢复请求包括回滚请求(对应于back命令)或撤销请求(对应于go命令)。上述撤销请求是回滚请求的基础上进行的,也就是说,用户在进行回滚操作的情况下,才可以进行撤销操作,回滚和撤销是两个相反方向的操作,比如,数据A的更新过程为A->B->C,当前网页数据为C,回滚一步,则当前网页数据由C变为B,在此基础上,撤销一步,当前网页数据由B再变为C。
上述页面恢复请求中携带有步数标识,比如,回滚一步,步数标识为1,回滚3步,频数标识为3。当用户对浏览器第二当前网页上的第二源数据进行回滚操作或撤销操作时,即发起了对第二源数据的回滚请求或撤销请求,浏览器则获取第二当前网页的第二源数据及页面恢复请求中携带的步数标识。
步骤S604,根据步数标识,从历史数据队列中查找步数标识对应的目标差异数据。
该步骤可以通过以下步骤实现:
(1)以历史数据队列中游标当前所在位置开始,查找步数标识对应数量的差异数据;如果页面恢复请求为回滚请求,从历史数据队列中游标当前所在位置开始,在历史数据队列中向前查找步数标识对应数量的差异数据;如果页面恢复请求为撤销请求,从历史数据队列中游标当前所在位置开始,在历史数据队列中向后查找步数标识对应数量的差异数据。
(2)将步数标识对应数量的差异数据确定为步数标识对应的目标差异数据。
比如,第二源数据的更新过程为A->B->C->D->E,E为第二当前网页中的第二源数据,数据A与数据B的差异数据用AB表示,历史数据队列中的差异数据按照位置顺序排列为:AB、BC、CD、DE。队列游标位置为队尾DE处,也就是说,DE为最后存储到队列中的差异数据。
如果回滚请求中携带的步数标识为3,则以游标当前所在位置DE开始,向前查找3个差异数据,分别为:BC、CD、DE。
在上述完成回滚操作后,第二源数据为B,游标位置指向BC,这种情况下,如果再撤销两步,则在历史数据队列中以游标当前所在位置BC开始,向后查找两个差异数据,即为BC和CD。
步骤S606,基于第二源数据和目标差异数据,确定页面恢复请求对应的目标恢复数据。
具体实现过程为:按照队列位置先后顺序依次从历史数据队列中提取差异数据;按照队列位置先后顺序,均基于第二源数据和提取得到的差异数据,逐次更新第二源数据,得到目标恢复数据。
还以上述例子为例进行说明,回滚请求中携带的步数标识为3,确定出的差异数据为BC、CD、DE,这时,可以根据当前第二源数据E及差异数据BC、CD、DE,推出数据B,比如,按照队列位置先后顺序,依次对第二源数据E进行更新,即,E和DE进行逆运算得到D,D再和CD逆运算得到C,C再和BC逆运算得到B,即B就是目标恢复数据。同理,根据当前第二源数据B及差异数据BC和CD,推出数据D,D即为目标恢复数据为D。
步骤S608,变更第二源数据为目标恢复数据。
也就是在回滚三步操作后,第二源数据由E变为B。撤销两步操作后,第二源数据由B又变为D。
同理,上述回滚和撤销过程也可以通过Web Worker线程实现,具体的实现过程如图5所示时序图,用户发起数据回滚或撤销请求,主线程将第二源数据和步数标识传递给Web Worker线程,Web Worke线程根据步数标识,从历史数据队列中查找步数标识对应的目标差异数据,基于第二源数据和目标差异数据,确定页面恢复请求对应的目标恢复数据,并向主线程返回目标恢复数据,主线程基于目标恢复数据进行数据更新,更新UI网页显示给用户。具体的目标恢复数据确定过程可以参见前述内容,在此不再赘述。
本申请实施例提供的网页数据处理方法,在追踪数据变化的时候,只需要记录数据变更的差异数据,避免了大量冗余数据。减少了页面占用的内存空间。同时采用WebWorker线程执行复杂的计算过程,避免占用页面的主线程,造成页面假死,提高了页面健壮性和可用性。
基于上述方法实施例,本申请实施例还提供一种网页数据处理装置,装置应用于配置有浏览器的客户端设备,浏览器配置有历史数据队列;参见图7所示,该装置包括:
差异数据获取模块702,用于响应针对于浏览器第一当前网页上的第一源数据的数据更新请求,获取第一源数据与数据更新请求对应的目标数据之间的差异数据;数据存储模块704,用于将差异数据存储于历史数据队列中;数据更新模块706,用于变更第一当前网页的第一源数据为目标数据。
进一步的,上述第一源数据与目标数据均为键值对形式;上述差异数据获取模块702还用于:查找第一源数据与目标数据中具有不同键值的相同键;基于查找到的相同键分别对应的不同键值,生成目标数据与第一源数据间的差异数据。
进一步的,上述差异数据获取模块702还用于:将第一源数据中相同键对应的第一键值和目标数据中相同键对应的第二键值组合为新键值,将新键值与相同键组成相同键对应的新键值对;根据多个相同键分别对应的新键值对,生成目标数据与第一源数据间的差异数据。
进一步的,上述数据存储模块704还用于:更新历史数据队列的游标位置,以使历史数据队列的游标指向差异数据。
进一步的,上述浏览器还配置有Web Worker线程;上述差异数据获取模块702还用于:通过浏览器的主线程将第一源数据和目标数据发送至Web Worker线程;通过WebWorker线程确定目标数据和第一源数据之间的差异数据;上述数据存储模块704还用于:通过Web Worker线程将差异数据存储于历史数据队列中。
进一步的,参见图8所示,上述装置还包括:数据获取模块708,用于响应针对于浏览器的第二当前网页的页面恢复请求,获取第二当前网页的第二源数据及页面恢复请求中携带的步数标识;其中,页面恢复请求包括:回滚请求或撤销请求;数据查找模块710,用于根据步数标识,从历史数据队列中查找步数标识对应的目标差异数据;数据确定模块712,用于基于第二源数据和目标差异数据,确定页面恢复请求对应的目标恢复数据;上述数据更新模块706,还用于变更第二源数据为目标恢复数据。
进一步的,上述数据查找模块710还用于:以历史数据队列中游标当前所在位置开始,查找步数标识对应数量的差异数据;将步数标识对应数量的差异数据确定为步数标识对应的目标差异数据。
进一步的,上述数据查找模块710还用于:如果页面恢复请求为回滚请求,从历史数据队列中游标当前所在位置开始,在历史数据队列中向前查找步数标识对应数量的差异数据。
进一步的,上述数据查找模块710还用于:如果页面恢复请求为撤销请求,从历史数据队列中游标当前所在位置开始,在历史数据队列中向后查找步数标识对应数量的差异数据。
进一步的,上述目标差异数据包括:按照队列位置顺序排列的多个差异数据;上述数据确定模块712还用于:按照队列位置先后顺序依次从历史数据队列中提取差异数据;按照队列位置先后顺序,均基于第二源数据和提取得到的差异数据,逐次更新第二源数据,得到目标恢复数据。
进一步的,上述浏览器配置有Web Worker线程;上述数据查找模块710还用于:通过浏览器的主线程将步数标识和第二源数据发送至Web Worker线程;通过Web Worker线程从历史数据队列中查找步数标识对应的历史差异数据;上述数据确定模块712还用于:通过Web Worker线程基于第二源数据和历史差异数据,计算第页面恢复请求对应的目标恢复数据。
本申请实施例提供的网页数据处理装置,其实现原理及产生的技术效果和前述网页数据处理方法实施例相同,为简要描述,网页数据处理装置的实施例部分未提及之处,可参考前述网页数据处理方法实施例中相应内容。
本申请实施例还提供了一种电子设备,如图9所示,为该电子设备的结构示意图,其中,该电子设备包括处理器91和存储器90,该存储器90存储有能够被该处理器91执行的计算机可执行指令,该处理器91执行该计算机可执行指令以实现上述方法。
在图9示出的实施方式中,该电子设备还包括总线92和通信接口93,其中,处理器91、通信接口93和存储器90通过总线92连接。
其中,存储器90可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口93(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线92可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线92可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器91可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器91中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器91可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器91读取存储器中的信息,结合其硬件完成前述实施例的方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述方法,具体实现可参见前述方法实施例,在此不再赘述。
本申请实施例所提供的方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本申请的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (14)
1.一种网页数据处理方法,其特征在于,所述方法应用于配置有浏览器的客户端设备,所述方法包括:
响应针对于所述浏览器第一当前网页上的第一源数据的数据更新请求,获取所述第一源数据与所述数据更新请求对应的目标数据之间的差异数据;
将所述差异数据存储于历史数据队列中;
变更所述第一当前网页的所述第一源数据为所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述第一源数据与所述目标数据均为键值对形式;
获取所述第一源数据与所述数据更新请求对应的目标数据之间的差异数据的步骤,包括:
查找所述第一源数据与所述目标数据中具有不同键值的相同键;
基于查找到的所述相同键分别对应的不同键值,生成所述目标数据与所述第一源数据间的差异数据。
3.根据权利要求2所述的方法,其特征在于,基于查找到的所述相同键分别对应的不同键值,生成所述目标数据与所述第一源数据间的差异数据的步骤,包括:
将所述第一源数据中所述相同键对应的第一键值和所述目标数据中所述相同键对应的第二键值组合为新键值,将所述新键值与所述相同键组成所述相同键对应的新键值对;
根据多个所述相同键分别对应的新键值对,生成所述目标数据与所述第一源数据之间的差异数据。
4.根据权利要求1所述的方法,其特征在于,将所述差异数据存储于所述历史数据队列中的步骤之后,还包括:
更新所述历史数据队列的游标位置,以使所述历史数据队列的游标指向所述差异数据。
5.根据权利要求1所述的方法,其特征在于,所述浏览器还配置有Web Worker线程;
获取所述第一源数据与所述数据更新请求对应的目标数据之间的差异数据,将所述差异数据存储于历史数据队列中的步骤,包括:
通过所述浏览器的主线程将所述第一源数据和所述目标数据发送至所述Web Worker线程;
通过所述Web Worker线程确定所述目标数据和所述第一源数据之间的差异数据;
通过所述Web Worker线程将所述差异数据存储于所述历史数据队列中。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应针对于所述浏览器的第二当前网页的页面恢复请求,获取所述第二当前网页的第二源数据及所述页面恢复请求中携带的步数标识;其中,所述页面恢复请求包括:回滚请求或撤销请求;
根据所述步数标识,从所述历史数据队列中查找所述步数标识对应的目标差异数据;
基于所述第二源数据和所述目标差异数据,确定所述页面恢复请求对应的目标恢复数据;
变更所述第二源数据为所述目标恢复数据。
7.根据权利要求6所述的方法,其特征在于,从所述历史数据队列中查找所述步数标识对应的目标差异数据的步骤,包括:
以所述历史数据队列中游标当前所在位置开始,查找所述步数标识对应数量的差异数据;
将所述步数标识对应数量的差异数据确定为所述步数标识对应的目标差异数据。
8.根据权利要求7所述的方法,其特征在于,以所述历史数据队列中游标当前所在位置开始,查找所述步数标识对应数量的差异数据的步骤,包括:
如果所述页面恢复请求为回滚请求,从所述历史数据队列中游标当前所在位置开始,在所述历史数据队列中向前查找所述步数标识对应数量的差异数据。
9.根据权利要求8所述的方法,其特征在于,在从所述历史数据队列中游标当前所在位置开始,在所述历史数据队列中向前查找所述步数标识对应数量的差异数据的步骤之后,所述方法还包括:
如果所述页面恢复请求为撤销请求,从所述历史数据队列中游标当前所在位置开始,在所述历史数据队列中向后查找所述步数标识对应数量的差异数据。
10.根据权利要求6所述的方法,其特征在于,所述目标差异数据包括:按照队列位置顺序排列的多个差异数据;
基于所述第二源数据和所述目标差异数据,确定所述页面恢复请求对应的目标恢复数据的步骤,包括:
按照队列位置先后顺序依次从所述历史数据队列中提取差异数据;
按照队列位置先后顺序,均基于所述第二源数据和提取得到的所述差异数据,逐次更新所述第二源数据,得到目标恢复数据。
11.根据权利要求6所述的方法,其特征在于,所述浏览器配置有Web Worker线程;
根据所述步数标识,从所述历史数据队列中查找所述步数标识对应的目标差异数据,基于所述第二源数据和所述目标差异数据,确定所述页面恢复请求对应的目标恢复数据的步骤,包括:
通过所述浏览器的主线程将所述步数标识和所述第二源数据发送至所述Web Worker线程;
通过所述Web Worker线程从所述历史数据队列中查找所述步数标识对应的历史差异数据;
通过所述Web Worker线程基于所述第二源数据和所述历史差异数据,计算所述第二源数据对应的目标恢复数据。
12.一种网页数据处理装置,其特征在于,所述装置应用于配置有浏览器的客户端设备,所述装置包括:
差异数据获取模块,用于响应针对于所述浏览器第一当前网页上的第一源数据的数据更新请求,获取所述第一源数据与所述数据更新请求对应的目标数据之间的差异数据;
数据存储模块,用于将所述差异数据存储于所述历史数据队列中;
数据更新模块,用于变更所述第一当前网页的所述第一源数据为所述目标数据。
13.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110152288.4A CN112799948A (zh) | 2021-02-03 | 2021-02-03 | 网页数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110152288.4A CN112799948A (zh) | 2021-02-03 | 2021-02-03 | 网页数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112799948A true CN112799948A (zh) | 2021-05-14 |
Family
ID=75814091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110152288.4A Pending CN112799948A (zh) | 2021-02-03 | 2021-02-03 | 网页数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799948A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114547522A (zh) * | 2022-02-28 | 2022-05-27 | 长沙朗源电子科技有限公司 | 一种网页编辑方法、设备、存储介质 |
CN117171419A (zh) * | 2023-10-31 | 2023-12-05 | 腾讯科技(深圳)有限公司 | 内容处理方法、装置、电子设备、存储介质及程序产品 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156097A (zh) * | 2015-04-02 | 2016-11-23 | 深圳市腾讯计算机系统有限公司 | 一种浏览器输入记录的处理方法及装置 |
CN108133015A (zh) * | 2017-12-22 | 2018-06-08 | 东软集团股份有限公司 | 表单数据留痕方法、装置、存储介质及电子设备 |
CN108255898A (zh) * | 2017-02-20 | 2018-07-06 | 平安科技(深圳)有限公司 | 页面显示方法和装置 |
CN108509172A (zh) * | 2018-04-13 | 2018-09-07 | 平安普惠企业管理有限公司 | 同步显示的数据传输方法、装置、系统和计算机存储介质 |
CN108829727A (zh) * | 2018-05-09 | 2018-11-16 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
CN110968815A (zh) * | 2019-12-04 | 2020-04-07 | 北京达佳互联信息技术有限公司 | 页面刷新方法、装置、终端及存储介质 |
CN111177279A (zh) * | 2019-12-25 | 2020-05-19 | 东软集团股份有限公司 | 表单保存方法、装置、存储介质及电子设备 |
CN111241791A (zh) * | 2020-01-13 | 2020-06-05 | 深圳市大富网络技术有限公司 | 网页文本的编辑方法、装置、计算机设备及存储介质 |
CN111654453A (zh) * | 2020-04-23 | 2020-09-11 | 平安国际智慧城市科技股份有限公司 | 表单数据离线缓存方法、装置、终端及存储介质 |
-
2021
- 2021-02-03 CN CN202110152288.4A patent/CN112799948A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156097A (zh) * | 2015-04-02 | 2016-11-23 | 深圳市腾讯计算机系统有限公司 | 一种浏览器输入记录的处理方法及装置 |
CN108255898A (zh) * | 2017-02-20 | 2018-07-06 | 平安科技(深圳)有限公司 | 页面显示方法和装置 |
CN108133015A (zh) * | 2017-12-22 | 2018-06-08 | 东软集团股份有限公司 | 表单数据留痕方法、装置、存储介质及电子设备 |
CN108509172A (zh) * | 2018-04-13 | 2018-09-07 | 平安普惠企业管理有限公司 | 同步显示的数据传输方法、装置、系统和计算机存储介质 |
CN108829727A (zh) * | 2018-05-09 | 2018-11-16 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
CN110968815A (zh) * | 2019-12-04 | 2020-04-07 | 北京达佳互联信息技术有限公司 | 页面刷新方法、装置、终端及存储介质 |
CN111177279A (zh) * | 2019-12-25 | 2020-05-19 | 东软集团股份有限公司 | 表单保存方法、装置、存储介质及电子设备 |
CN111241791A (zh) * | 2020-01-13 | 2020-06-05 | 深圳市大富网络技术有限公司 | 网页文本的编辑方法、装置、计算机设备及存储介质 |
CN111654453A (zh) * | 2020-04-23 | 2020-09-11 | 平安国际智慧城市科技股份有限公司 | 表单数据离线缓存方法、装置、终端及存储介质 |
Non-Patent Citations (2)
Title |
---|
HIEKAY: "python 比较json/dictionary的库", 《HTTPS://DEVELOPER.ALIYUN.COM/ARTICLE/687224》, pages 270 * |
吕云翔: "《HTML5基础与实践教程》", 31 March 2020, 机械工业出版社, pages: 204 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114547522A (zh) * | 2022-02-28 | 2022-05-27 | 长沙朗源电子科技有限公司 | 一种网页编辑方法、设备、存储介质 |
CN117171419A (zh) * | 2023-10-31 | 2023-12-05 | 腾讯科技(深圳)有限公司 | 内容处理方法、装置、电子设备、存储介质及程序产品 |
CN117171419B (zh) * | 2023-10-31 | 2024-04-30 | 腾讯科技(深圳)有限公司 | 内容处理方法、装置、电子设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110737658B (zh) | 数据分片存储方法、装置、终端及可读存储介质 | |
CN112799948A (zh) | 网页数据处理方法、装置、电子设备及存储介质 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN111984264B (zh) | 一种静态库的生成方法和装置 | |
CN111367922A (zh) | 一种数据更新方法及相关设备 | |
CN111414207A (zh) | 一种页面搭建方法、装置和设备 | |
JP6481387B2 (ja) | 関連情報提供方法、関連情報提供装置及び関連情報提供プログラム | |
CN112861013A (zh) | 用户画像更新方法、装置、电子设备及存储介质 | |
CN109542872B (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN112559913A (zh) | 一种数据处理方法、装置、计算设备及可读存储介质 | |
CN116881515A (zh) | 对不同算法求解的电容结果进行比较的方法及电子设备 | |
CN108804625B (zh) | 一种lsm树的优化方法、装置及计算机设备 | |
CN111639087A (zh) | 数据库中数据更新方法、装置和电子设备 | |
CN110990611B (zh) | 图片缓存方法、装置、电子设备及存储介质 | |
CN114611039A (zh) | 异步加载规则的解析方法、装置、存储介质和电子设备 | |
CN111522570B (zh) | 目标库更新方法、装置、电子设备及机器可读存储介质 | |
CN114357318A (zh) | 多维轨迹数据显示方法、装置和电子设备 | |
CN108182202B (zh) | 内容更新通知方法、装置、电子设备及存储介质 | |
CN111736848A (zh) | 包冲突定位方法、装置、电子设备及可读存储介质 | |
CN117149719B (zh) | 基于web架构的服务端数据处理、装置、设备及介质 | |
CN113157704B (zh) | 层级关系分析方法、装置、设备及计算机可读存储介质 | |
CN115913646B (zh) | 黑名单对象的拦截方法、装置、电子设备和存储介质 | |
CN108958983B (zh) | 基于数据差异的还原方法、装置、存储介质及用户设备 | |
CN108803975B (zh) | 指令处理方法、装置及电子设备 | |
CN111090614A (zh) | Rom快照的读取方法、装置和存储介质 |
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 |