一种网页同步的方法、系统与流程

文档序号:25543049发布日期:2021-06-18 20:39阅读:262来源:国知局
一种网页同步的方法、系统与流程

本发明涉及互联网技术及通信领域,尤其涉及一种网页同步的方法、系统。



背景技术:

随着互联网的发展,网页同步技术也越来越重要,相比远程屏幕同步,网页同步具有传输数据小、传输速度快的特点,用户不需要另外安装软件或插件,仅通过浏览器访问网页即可进行同步,方便快捷,且在同步过程中不会访问到用户本地数据,安全度较高。从网页分类看,包括内容预先确定的静态网页,以及基于动态的参数计算产生的动态网页。但现有技术对动态网页的同步支持存在许多问题,根据动态网页的特征,在用户操作网页过程中,存在与服务器之间的交互,即根据用户操作,在浏览器中生成网页请求,由web服务器根据请求计算生成网页或响应数据返回,浏览器根据请求获得的网页数据显示网页,或根据获得的响应数据在浏览器中执行计算呈现网页,由此,在网页同步过程中,多个同步的用户向服务器发送网页请求,其网页请求可能存在不一致的情形,由此造成针对不同用户的响应结果差异,进一步导致同步页面出现差异,而且,即使在网页请求相同的情况下,多个同步的用户向服务器多次发送网页请求,也可导致服务器端重复计算或计算混乱,如多个同步用户分别向服务器发送网页请求,在服务端根据所接收的数据保存数据至数据库,当多个执行同步的网页同时发送时,会导致服务端数据库中保存了重复数据。因此,统一实现静态网页、动态网页的网页同步问题,亟待应用新的网页同步技术解决。



技术实现要素:

本申请有鉴于上述现有的状况,应用网页技术,以统一解决静态网页、动态网页的网页同步问题。

第一方面,本申请提供了一种网页同步方法,所述方法用于实现源网页、目标网页的网页同步显示、同步操作,所述方法应用于所述源网页一侧,所述方法包括:

监听所述源网页中发生的用户操作,基于所述用户操作采集用户操作、用户操作的数据,并生成网页操作指令数据;

监听所述源网页中的网页请求,基于所述网页请求,采集所述网页请求的请求信息生成请求数据,采集所述网页请求的响应信息生成响应数据,将所述请求数据、所述响应数据按照对应关系生成为网页请求记录数据;

向所述目标网页发送所述网页操作指令数据、所述网页请求记录数据;

其中,所述网页操作指令数据用于所述目标网页接收,执行其包含的网页操作指令,以在所述目标网页中模拟所述源网页中发生的用户操作;所述网页请求记录数据用于所述目标网页接收,基于其包含的请求数据、响应数据,为目标网页中对应于所述请求数据的网页请求提供对应的响应数据,以在目标网页中模拟所述源网页中对网页请求的处理。

通过上述方法,用户在源网页中执行用户操作,如网页滑动、输入、点击等用户行为,在源网页监听到该类用户操作后,将该类操作行为转换为网页操作指令,同时,所述网页操作指令还包括用户操作的数据信息,如输入的字符数据,将以上网页操作指令发送至源网页,由源网页解析并执行所述网页操作指令,实现目标网页与源网页的用户操作效果同步。当在源网页监听到网页请求时,基于源网页中发生的网页请求,采集该网页请求的请求信息与响应信息,按照对应关系生成网页请求记录数据并发送至目标网页,在目标网页中,当监听到网页请求时,先进行拦截处理,即不执行向网页外部请求数据,通过在源网页发送的网页请求记录数据中查找并获得相应的响应数据。由此,实现了目标网页与源网页操作与显示同步的效果,且避免了同步过程中与外部交互的混乱问题。

一个可能的实现方式中,在所述源网页一侧,基于所述网页请求采集所述请求数据、所述响应数据,还包括:

根据所述网页请求的类型,根据预定的网页请求处理规则判断所述网页请求类型是否需要采集请求数据、响应数据生成网页请求记录数据;

根据所述网页请求的类型,采集指定的数据项作为所述请求数据,采集指定的数据项作为所述响应数据,将所述请求数据、所述响应数据按照对应关系生成为网页请求记录数据。

根据该实现方式,基于不同类型的网页请求(如xmlhttprequest请求、js请求、图片请求等),可设定某网页请求类型不进行网页请求记录数据采集,如针对图片类型的网页请求,不采集网页请求记录数据,由此,目标网页在同步过程中直接对外请求获取图片;另外,基于不同类型的网页请求,在网页请求信息、响应信息中分别采集指定的数据项,以供在目标网页中根据网页请求的类型查找网页请求记录以及提供响应数据。

一种可能的实现方式中,在所述源网页一侧,在所述源网页与目标网页首次建立网页同步时或网页同步过程中,还包括,基于所述源网页中的网页数据全部或部分生成用于同步的网页数据,向所述目标网页发送所述用于同步的网页数据。其中,所述用于同步的网页数据由所述目标网页接收,基于其包含的网页数据对应更新所述目标网页中的网页数据内容,以使所述目标网页与所述源网页的网页数据保持同步。

根据以上实现方式,提供了一种基于源网页中的网页数据更新目标网页中的网页数据的方法,该实现方式作为本申请提供的网页同步方法的重要补充。例如,源网页自加载完成后用户已执行了多步操作,或已发生了多个网页请求,此后,目标网页请求加入同步,采用本实现方式进行网页数据同步。又如,在网页同步过程中,检测到目标网页中的网页数据与源网页不一致的情况,采用本实现方式使两者网页数据保持一致。

一种可能的实现方式中,根据目标网页发送的同步网页数据校验请求,计算生成用于同步的网页数据并发送至目标网页,具体为:

接收所述目标网页发送的同步网页数据校验请求,所述同步网页数据校验请求包括一个或多个待校验的网页数据记录,所述待校验的网页数据记录包括网页数据的标识信息,所述标识信息对应于所述源网页与所述目标网页中指定部分的网页数据;

根据所述同步网页数据校验请求中包含的待校验的网页数据记录,执行以下操作:

将所述网页数据的标识信息所标识的所述源网页中的网页数据生成为所述用于同步的网页数据,向所述目标网页发送所述用于同步的网页数据;

或者,当确认所述待校验的网页数据记录还包括基于所述标识信息在目标网页中标识的网页数据生成的第二消息摘要时,根据所述待校验的网页数据记录中的网页数据的标识信息,在源网页中获取对应的网页数据,并基于所获取的网页数据生成第一消息摘要,比较所述网页数据的标识信息所对应的所述第一消息摘要与所述第二消息摘要,当确定两者存在差异时,将所述网页数据的标识信息所标识的所述源网页中的网页数据生成为所述用于同步的网页数据,向所述目标网页发送所述用于同步的网页数据。

在以上实现方式中,所述用于同步的网页数据由所述目标网页接收,基于其包含的网页数据对应替换目标网页中的网页数据内容,保持网页数据内容同步。另外,所提供的将源网页、目标网页中对应的网页数据生成消息摘要,并通过比较消息摘要而获得两侧网页数据差异的方法,具有数据传输量小的特点。

以上实现方式提供了一种根据同步网页数据校验请求计算生成用于同步的网页数据的方法,根据所述同步网页数据校验请求的类型,返回指定部分的网页数据或者与目标网页存在差异的网页数据,以实现目标网页的网页数据与源网页保持一致,达到同步效果。

一种可能的实现方式中,在所述源网页中生成同步数据,还包括,对应于所述同步数据,生成同步状态标识,所述同步状态标识用于标识同步过程中的一个同步状态。另外,向所述目标网页发送所述同步数据,还包括,向所述目标网页发送所述同步状态标识。

在本申请中,所述同步数据为所述源网页发送至所述目标网页的用于执行同步的数据,包括但不限于基于用户操作采集生成的所述网页操作指令数据、基于网页请求生成的所述网页请求记录数据、基于所述源网页中全部或部分网页数据生成的所述用于同步的网页数据,以及本申请后续实现方式提及的定时器执行指令、指定的系统函数的执行结果数据、由网址信息生成的同步数据等。

根据以上可能的实现方式,在源网页中每次生成同步数据后,发送至目标网页以在目标网页执行相应的同步操作,即与目标网页进行一次同步,所述同步状态标识用于标识本次同步,用于控制源网页与目标网页的同步过程。

一种可能的实现方式中,在所述源网页,监听其包含的网页数据内容是否发生改变,在监听到所述网页数据内容发生改变后,判断所述源网页存储的同步状态标识是否有相应的更新,当确认所述同步状态标识未更新时,基于所述发生改变的网页数据内容生成用于同步的网页数据,向目标网页发送所述用于同步的网页数据。

在以上可能的实现方式中,所述网页数据内容为网页在浏览器中下载或运行中包含的内容,如:网页html。根据以上实现方式,所述同步状态标识未更新,等价于源网页未发送同步数据,在该种情况下网页数据内容发生改变,即为源网页中出现了除用户操作、网页请求之外的其它运行行为,由于源网页中的网页数据内容发生改变,由此而造成与目标网页之间不同步的情况,可通过该实现方式使两者之间保持同步。

在本申请的另一种可能的实现方式中,在所述源网页中建立对网页定时器(如settimeout)的执行监测,当监测到所述定时器执行后,基于所述定时器的执行内容,生成用于在所述目标网页中执行的定时器执行指令,向所述目标网页发送所述定时器执行指令。

通过以上实现方式,向目标网页发送定时器执行指令,由所述目标网页执行所述定时器执行指令,由此达到目标网页与源网页相同的定时器执行效果。

在本申请的另一种可能的实现方式中,在所述源网页,监测指定的系统函数的执行,当监测到所述指定的系统函数执行时,获取所述指定的系统函数执行的结果生成执行结果数据,向所述目标网页发送所述执行结果数据。

在以上实现方式中,所述指定的系统函数是指在源网页、目标网页中分别执行,可能会出现执行结果差异的系统函数,例如,获取系统时间函数。通过以上实现方式,向目标网页发送源网页中指定的系统函数的执行结果数据,由目标网页基于所述执行结果数据处理其对应的系统函数,由此使得两者的系统函数执行结果保持同步。

在本申请的另一种可能的实现方式中,在所述源网页,每一次更新同步标识信息后,暂停所述源网页中的程序执行,直到收到所述目标网页发送的同步执行完成通知后,继续所述源网页中的程序执行。

结合以上几种可能的实现方式,在所述源网页中发生用户操作、网页请求、定时器执行、系统函数执行,以及向目标网页发送网页数据,均要求目标网页执行对应的同步操作,以上实现方式的目的在于,在目标网页未完成同步时,暂停源网页执行,以确保两者执行步骤保持一致。

在本申请的另一种可能的实现方式中,所述源网页在接收到所述目标网页首次发送的同步请求后,刷新所述源网页,并发送所述源网页的当前网址至所述目标网页,所述当前网址用于在所述目标网页中基于其重新加载网页;或者,在所述源网页加载完成后,向所述目标网页发送所述源网页包含的网页数据,所述网页数据用于所述目标网页执行替换更新。

通过以上实现方式,源网页首次接收到目标网页的同步请求,源网页与目标网页均基于相同网址重新计算生成,或基于源网页一侧的网页数据更新目标网页一侧的网页数据,由此获得与源网页相同的运行状态,同时为后续的同步执行提供了基础。

第二方面,本申请提供了一种网页同步方法,应用于源网页至目标网页的网页操作与显示同步,所述方法应用于所述目标网页一侧,所述方法包括:

接收所述源网页发送的网页操作指令数据和/或网页请求记录数据,其中,所述网页请求记录数据包括基于源网页中的网页请求的请求信息所生成的请求数据,以及基于源网页中的网页请求的响应信息所生成的响应数据;

基于所述网页操作指令数据中包含的网页操作指令,执行所述网页操作指令;

监听所述目标网页中的网页请求,拦截所监听到的网页请求,根据所拦截的网页请求的请求信息在所述网页请求记录数据中查找到相应的网页请求记录数据记录,将所述网页请求记录数据记录中包含的响应数据,作为所拦截的网页请求的响应数据返回。

通过上述方法,在网页同步过程中,目标网页接收源网页发送的网页操作指令数据、网页请求记录数据,基于网页操作指令数据,执行网页操作指令,还原发生于源网页中的用户操作,基于网页请求记录数据,在目标网页内模拟建立处理网页请求的服务,在目标网页中发生网页请求后,拦截所述网页请求,不对外请求数据,而通过模拟处理网页请求的服务获取响应数据。由此达到目标网页与源网页同步显示、同步用户操作的效果,且目标网页不产生实际的对外交互,由此避免在同步过程中造成与服务器的交互混乱。

一种可能的实现方式中,在目标网页一侧,在所述目标网页监听到网页请求后,还包括,基于所述网页请求的类型,根据预定的网页请求处理规则判断,获取所述网页请求的处理方式,并根据所述处理方式处理所述网页请求,所述网页请求的处理方式包括拦截处理与不拦截处理,当确认为拦截所述网页请求时,基于所述网页请求在所述网页请求记录数据中查找到相应的网页请求记录数据记录,将所述网页请求记录数据记录中包含的响应数据,作为所拦截的网页请求的响应数据返回。

通过以上实现方式,按照预先设定的网页请求类型处理规则,从所述网页请求记录数据中获取响应数据或向外部正常请求数据,有利于区分对待网页静态资源以及动态的服务器交互数据,同时减小了网页同步过程中数据的传输量。

一种可能的实现方式中,在目标网页一侧,接收所述源网页发送的用于同步的网页数据,根据所述用于同步的网页数据所包含的网页数据内容,对应更新所述目标网页中的网页数据。

通过以上实现方式,在目标网页向源网页首次请求同步时,或者,在网页同步过程中,目标网页中发生的网页请求无法确保与源网页中的网页请求保持一致时,通过同步网页数据的形式,使目标网页与源网页保持同步。

一种可能的实现方式中,在目标网页一侧,根据网页数据的标识信息,生成待校验的网页数据记录,或者,根据网页数据的标识信息,基于所述标识信息在目标网页中标识的网页数据生成第二消息摘要,根据所述标识信息与所述第二消息摘要生成待校验的网页数据记录。基于一个或多个待校验的网页数据记录,生成同步网页数据校验请求。向所述源网页发送所述同步网页数据校验请求。

在以上可能的实现方式中,所述同步网页数据校验请求,用于根据网页数据的标识在源网页中获取网页数据,或者,用于校验目标网页与源网页中对应的网页数据的一致性,在向源网页发送同步网页数据校验请求的同时,发送根据目标网页中网页数据生成的第二消息摘要,以便源网页基于所述第二消息摘要比较对应的网页数据的异同,同时具有数据传输量小的优势。

一种可能的实现方式中,在目标网页一侧,根据所接收的所述源网页发送的同步数据,在目标网页中执行相应的同步操作后,还包括,读取所述同步数据对应的同步状态标识,基于其更新目标网页中存放的同步状态标识,其中,所述目标网页存放的同步状态标识用于标识目标网页的同步状态。所述源网页发送的同步数据包括但不限于:所述网页操作指令数据、所述网页请求记录数据、所述用于同步的网页数据,以及本申请后续实现方式提及的定时器执行指令、指定的系统函数的执行结果数据等。所述在目标网页中执行相应的同步操作包括但不限于:执行网页操作指令、基于所述网页请求记录数据处理目标网页中发生的网页请求、基于所述用于同步的网页数据对应更新目标网页中的网页数据内容、基于所述定时器执行指令执行所指定的执行内容、基于所述指定的系统函数的执行结果数据设置目标网页中相应系统函数的执行结果等。

通过以上可能的实现方式,在目标网页每次执行同步操作后,更新目标网页中存放的同步状态标识,有利于识别目标网页的同步状态,以实现整体同步过程的控制。

在一种可能的实现方式中,监听所述目标网页的网页数据内容变化,在监听到所述网页数据内容发生改变的前后,判断所述目标网页中存放的同步状态标识是否更新,当确认所述目标网页中存放的同步状态标识未更新时,基于所述发生改变的网页数据内容所对应的网页数据的标识信息,生成同步网页数据校验请求,向所述源网页发送所述同步网页数据校验请求。

在以上可能的实现方式中,所述网页数据内容为网页在浏览器中下载或运行中包含的内容,如:网页html。根据以上实现方式,所述同步状态标识未更新,等价于目标网页未接收同步数据与执行同步操作,在该种情况下网页数据内容发生改变,即为目标网页中出现了除用户操作、网页请求之外的其它运行行为,由于目标网页中的网页数据内容发生改变,由此可造成与源网页之间不同步的情况,通过该实现方式使两者之间保持同步。

一种可能的实现方式中,在所述目标网页一侧,当监测到所述目标网页中的定时器执行时,停止所述定时器执行;接收所述源网页发送的定时器执行指令,基于所述定时器执行指令执行所指定的执行内容。

通过以上可能的实现方式,屏蔽所述目标网页中定时器的执行,通过接收所述源网页发送的定时器执行指令,由此同步执行所述源网页中的定时器执行内容,达到与源网页相同的执行效果。

在一种可能的实现方式中,在所述目标网页一侧,接收所述源网页发送的指定的系统函数的执行结果信息,当监测到所述目标网页中指定的系统函数执行时,在所接收的所述指定的系统函数的执行结果信息中查找对应的执行结果,作为所述目标网页中指定的系统函数的执行结果返回。

通过以上可能的实现方式,保证了目标网页与源网页中指定的系统函数执行结果的一致性。

在一种可能的实现方式中,在所述目标网页中,基于所述源网页发送的同步数据,完成同步执行操作后生成同步执行完成通知,向所述源网页发送所述同步执行完成通知。

通过以上可能的实现方式,在目标网页完成对应于源网页中的同步操作后,向所述源网页发送执行完成通知,有利于源网页进行整体的同步执行过程控制。

在一种可能的实现方式中,在首次向所述源网页发送网页同步请求后,接收所述源网页返回的同步数据,当确认为所述源网页的当前网址信息时,基于其重新加载所述目标网页;当确认为网页数据时,基于所接收的网页数据,替换目标网页中的网页数据。

通过以上可能的实现方式,目标网页首次向源网页发送同步请求,目标网页与源网页均基于相同网址重新计算生成,或基于源网页一侧的网页数据更新目标网页一侧的网页数据,由此获得与源网页相同的运行状态,同时为后续的同步执行提供了基础。

第三方面,本申请还提供了一种网页同步系统,用于实现源网页至目标网页的网页显示、操作同步,其特征在于,所述系统包括源网页与目标网页,所述源网页包括:

用户操作采集模块,用于基于源网页中发生的用户操作,采集所述用户操作、用户操作的数据;

网页操作指令数据生成模块,用于基于所述用户操作采集模块所采集的用户操作、用户操作的数据,生成网页操作指令数据;

网页请求采集模块,用于基于所述源网页中的网页请求,采集所述网页请求的请求信息,采集所述网页请求的响应信息;

网页请求记录数据生成模块,用于根据所述网页请求采集模块所采集的请求信息生成请求数据,根据所述网页请求采集模块所采集的响应信息生成响应数据,将所述请求数据、所述响应数据生成为网页请求记录数据;

数据通信模块,用于向所述目标网页发送所述网页操作指令数据、网页请求记录数据;

所述目标网页包括:

网页操作指令执行模块,用于基于所述网页操作指令数据中包含的网页操作指令,执行所述网页操作指令;

网页请求监听模块,用于监听目标网页中发生的网页请求;

网页请求模拟服务模块,用于根据在所述目标网页中监听到的网页请求,拦截所述网页请求,根据所拦截的网页请求的请求信息在所述网页请求记录数据中查找到相应的网页请求记录数据记录,将所述网页请求记录数据记录中包含的响应数据,作为所拦截的网页请求的响应数据返回;

数据通信模块,用于接收所述源网页发送的所述网页操作指令数据、所述网页请求记录数据。

在一种可能的网页同步系统中,还包括:

所述源网页还包括:

同步过程控制模块,用于执行同步过程控制,包括,根据源网页发送的同步数据,生成同步状态标识,所述同步状态标识用于标识一个同步状态,其中,所述同步数据为所述源网页向所述目标网页发送的,用于执行网页同步的数据;

网页数据监听模块,用于监听源网页中的网页数据是否发生了变化;

网页数据同步校验模块,用于基于从所述目标网页接收的同步网页数据校验请求,根据其包含的待校验的网页数据记录,校验所述源网页与所述目标网页中相同网页标识所对应的网页数据的一致性;

同步网页数据生成模块,用于根据所述源网页中的网页数据,生成用于同步的网页数据;还用于根据所述目标网页发送的网页数据的标识信息,基于所述网页数据的标识信息在所述源网页中对应的网页数据内容,生成用于同步的网页数据;还用于在所述网页数据同步校验模块校验所述目标网页与所述源网页的网页数据不一致时,基于源网页中对应的网页数据生成用于同步的网页数据;还用于在所述网页数据监听模块监听到网页数据内容发生改变后,判断所述源网页中存放的同步状态标识是否更新,当确认所述网页状态标识信息未更新时,基于所述发生改变的网页数据内容生成用于同步的网页数据;

其中,所述数据通信模块,还用于向所述目标网页发送所述同步状态标识、所述用于同步的网页数据,还用于接收所述目标网页发送的同步网页数据校验请求;

所述目标网页还包括:

同步过程控制模块,用于在所述目标网页中执行同步过程控制,包括,根据所接收的所述源网页发送的同步数据,在目标网页中执行相应的同步操作后,读取所述同步数据对应的同步状态标识,基于其更新目标网页中存放的同步状态标识;

网页请求处理模块,用于根据所述网页请求监听模块监听到的网页请求,基于所述网页请求的类型,根据预定的网页请求处理规则判断,获取所述网页请求的处理方式,并根据所述处理方式处理所述网页请求,所述网页请求处理方式包括,拦截所述网页请求并将所述网页请求信息发送至所述网页请求模拟服务模块处理、不拦截所述网页请求;

网页数据监听模块,用于监听目标网页中的网页数据是否发生了变化;

同步网页数据校验请求生成模块,用于生成同步网页数据校验请求,所述同步网页数据校验请求用于向所述源网页发送,以校验网页同步过程中所述目标网页、所述源网页包含的网页数据的一致性;

网页数据替换模块,用于根据从所述源网页接收的用于同步的网页数据,根据所述用于同步的网页数据所包含的网页数据内容,对应更新所述目标网页中的网页数据;

其中,所述数据通信模块,还用于接收所述源网页发送的同步状态标识、所述用于同步的网页数据,还用于发送所述同步网页数据校验请求。

在另一种可能的网页同步系统中,还包括:

所述源网页还包括:

网页定时器监测处理模块,用于对所述源网页中的定时器执行监测,当监测到所述定时器执行后,基于所述定时器的执行内容,生成用于在所述目标网页中执行的定时器执行指令;

特殊系统函数监测处理模块,用于在所述源网页监测指定的系统函数的执行,当监测到所述指定的系统函数执行后,获取所述指定的系统函数执行的结果生成执行结果数据;

所述同步过程控制模块,还用于在所述源网页每一次更新同步状态标识后,暂停所述源网页中的程序执行,直到收到所述目标网页发送的同步执行完成通知时,继续所述源网页中的程序执行;还用于在接收到所述目标网页发送的同步请求时,刷新所述源网页,并发送所述源网页的当前网址至所述目标网页,所述当前网址用于在所述目标网页中基于其重新加载网页,或者,在所述源网页加载完成后,调用同步网页数据生成模块将所述源网页包含的网页数据生成用于同步的网页数据,向所述目标网页发送该用于同步的网页数据;

所述数据通信模块,还用于向所述目标网页发送定时器执行指令、指定的系统函数的执行结果数据;还用于向所述目标网页发送所述同步过程控制模块处理所述目标网页同步请求生成的用于同步的网页数据;还用于接收所述目标网页发送的同步执行完成通知;

所述目标网页还包括:

网页定时器执行控制模块,用于在监测到所述目标网页中的定时器执行时,停止所述定时器执行;还用于根据从所述源网页接收的定时器执行指令,基于所述定时器执行指令执行所指定的执行内容;

系统函数执行控制模块,用于在监测到所述目标网页中指定的系统函数执行时,根据从所述源网页接收的指定的系统函数的执行结果信息,在所述指定的系统函数执行的结果信息中查找对应的执行结果,基于其设置所述目标网页中指定的系统函数的执行结果;

所述同步过程控制模块,还用于在所述目标网页中完成所述源网页所发送的同步数据对应的同步执行操作后,生成同步执行完成通知;还用于在首次向所述源网页发送网页同步请求后,根据所接收的网址信息,重新加载目标网页,或者,根据所接收的网页数据,调用所述网页数据替换模块替换网页数据;

所述数据通信模块,还用于接收所述源网页发送的所述定时器执行指令、所述指定的系统函数的执行结果所生成执行结果数据;还用于向所述源网页发送同步执行完成通知。

第四方面,本申请实施例还提供一种计算机程序产品,该计算机程序产品在被一个或多个处理器读取并执行时可实现任一方面的任意一种实施方式提供的方法。

附图说明

图1为本申请实施例提供的一种网页同步流程示意图;

图2为本申请实施例提供的一种同步过程中对不同类型网页请求处理的流程示意图;

图3为本申请实施例提供的一种同步网页数据的流程示意图;

图4为本申请实施例提供的一种在同步两侧生成与更新同步状态标识的流程示意图;

图5为本申请实施例提供的一种通过监听源网页数据内容执行同步的流程示意图;

图6为本申请实施例提供的一种生成与处理网页数据校验请求的流程示意图;

图7为本申请实施例提供的一种通过监听目标网页数据内容执行同步的流程示意图;

图8为本申请实施例提供的一种监测并处理网页定时器的同步流程示意图;

图9为本申请实施例提供的一种监测并处理指定的系统函数的同步流程示意图;

图10为本申请实施例提供的一种同步过程控制流程示意图;

图11为本申请实施例提供的一种源网页与目标网页首次建立同步后执行处理的流程示意图;

图12为本申请实施例提供的另一种源网页与目标网页首次建立同步后执行处理的流程示意图;

图13为本申请实施例提供的一种网页同步系统结构示意图;

图14为本申请实施例提供的另一种网页同步系统结构示意图;

图15为本申请实施例提供的另一种网页同步系统结构示意图。

具体实施方式

本申请的实施方式部分仅用于对本申请进行解释,而非旨在限制本申请。

下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

本申请主要目的在于实现两个网页之间的同步,在本申请中,两个进行同步的网页被定义为源网页与目标网页,所述网页同步即将源网页中执行的网页操作、网页变化发送至目标网页,而使目标网页保持与源网页相同的状态,包括网页浏览、操作等同步。另外,所述网页同步,并不限于两个网页,在一次同步过程中,存在一个源网页与多个目标网页进行同步的情形,其原理与两个网页之间同步相同。需要说明的是,上述的“一次同步”,是指在一个网页发生一次变化而另一个网页随之变化的过程,因此,源网页、目标网页均为相对于一次同步所定义的概念,在同步过程中,源网页与目标网页的角色可相互转换。

关于网页同步的建立,用户a访问网址进入第一网页,用户b访问相同或相关网址进入第二网页,根据业务要求确立本次同步的源网页、目标网页,从所述源网页执行至所述目标网页的同步。

根据同步的目的,通过本申请实现源网页与目标网页之间的显示与操作同步,如图1所示,包括以下步骤:

在源网页中:

s101,监听网页事件;

s102,判断监听到的网页事件类型,包括s1021用户操作、s1022网页请求两种类型;

s103,采集用户操作、用户操作的数据,生成网页操作指令数据;

s104,基于网页请求,采集网页请求的请求信息、响应信息,生成网页请求记录数据;

s105,向目标网页发送网页操作指令数据、网页请求记录数据;

在目标网页中:

s106,接收网页操作指令数据、网页请求记录数据;

s107,判断所接收的同步数据的类型,包括s1071网页操作指令数据、s1072网页请求记录数据;

s108,基于网页操作指令数据中包含的网页操作指令,执行所述网页操作指令;

s109,存储网页请求记录数据;

s110,监听网页请求;

s111,拦截该网页请求;

s112,根据监听到的网页请求,在网页请求记录数据中查找相应的数据记录;

s113,从网页请求记录数据中查找获得的相应的数据记录,将其包含的响应数据作为本次网页请求的响应数据返回。

在以上步骤中,s101监听源网页中发生的各种网页事件,s102对所监听到的网页事件类型进行判断,当判断为用户操作时,执行步骤s103,基于所述用户操作,采集用户操作行为以及用户操作的数据,将所采集的数据生成网页操作指令数据,其中,所述网页操作指令数据包含用于在目标网页中还原所述用户操作的网页操作指令,以及执行本次网页操作的相关操作数据,如:用户执行输入操作,则将所述输入操作记录为网页操作指令,将输入的数据内容记录为本次网页操作的操作数据,并基于两者生成为网页操作指令数据。

在以上步骤中,当s102判断所监听到的网页事件类型为网页请求时,执行s104基于网页请求采集请求信息、响应信息,并生成请求记录数据。此处的网页请求,指网页与网页外部产生的交互,如向服务器发送请求并获取响应数据等,所述网页请求的类型包括但不限于xmlhttprequest(xhr)请求、js请求、css请求、图片(img)请求、媒体(media)请求、字体(font)请求、document(doc)请求、websocket(ws)请求、manifest请求等,以xhr请求为例,在网页中通过xmlhttprequest向服务器发送请求,在服务器响应后,通过xmlhttprequest回调函数接收数据,因此,xhr请求包括向服务器发送的请求信息以及从服务器接收的响应信息,所述请求信息包括请求的网址信息(requesturl)、请求方法(requestmethod)、网络请求状态码(statuscode)、路由地址(remoteaddress)、请求头(requestheaders)及其包含的信息、响应头(responseheaders)及其包含的信息、查询字符串参数(querystringparameters)信息等,所述响应信息如json、xml、其他字符串信息等,根据监听xhr请求,基于上述请求信息、响应信息所包含信息的一种或多种生成本次xhr请求记录数据。另外,需要说明的是,本申请中的网页请求,并不局限于通过网络对外请求数据,应理解为网页对外以任何方式交互或获取数据。另外需要特别说明的是,本申请实施例中的网页请求,不包括为实现本申请所提供的方法而产生的网页请求。

根据以上步骤s103所采集的网页操作指令数据、s104所采集的网页请求记录数据,执行s105向目标网页发送所采集的数据。可选的,s105将所采集的数据发送至同步服务器,由同步服务器接收并发送至所述目标网页。优选地,s105发送数据以及s106接收数据,通过在源网页、目标网页与同步服务器之间通过建立websocket通信传输数据。

根据以上步骤,在目标网页一侧,当s106接收到从源网页直接或间接发送的同步数据后,在s107中判断该同步数据的类型,当为网页操作指令数据时,执行s108,基于所述网页操作指令数据中包含的网页操作指令以及网页操作数据,执行网页操作指令,以还原用户在源网页中的操作,达到同步用户操作的效果;当同步数据的类型为网页请求记录数据时,执行s109存储该网页请求记录数据,以供模拟处理目标网页中的网页请求使用。

根据以上步骤,在目标网页中发生网页请求后,s110监听所述网页请求,执行s111拦截该网页请求,根据所监听到的网页请求从网页请求记录数据中获取响应数据,即执行s112在所存储的网页请求记录数据中查找对应的数据记录,通过执行s113将所述查找结果中包含的响应数据部分作为本次网页请求的响应数据返回。由此,使在目标网页中发生的网页请求与源网页中该网页请求的响应数据保持一致,实现了两者同步的效果,同时,避免了目标网页向网页外部重复请求数据,不会造成与服务器交互混乱。其中,所述与服务器交互混乱,如:源网页发送一网页请求,在服务端处理请求并在服务端执行加1计算并存储数据,如目标网页发送相同的网页请求,由此会造成在服务端重复处理,最终产生的结果为,在服务端执行了多次加1计算并存储,由此而造成混乱。

根据以上实施例提供的方法,在具体实施时,优选地,将以上在源网页中的步骤s101至s105通过一个js库实现,将以上在目标网页中的步骤s106至s113通过另一个js库实现,或者,将以上所有或部分步骤通过一个js库实现,由此,在源网页、目标网页中引入对应的js库,并进行相关的网页同步设置、参数配置,可快速生成能够进行同步的网页。

根据以上实施例提供的方法,基于源网页中发生的用户操作行为、网页请求,在目标网页中实现了相同的用户操作效果以及相同的网页请求处理结果,且同步过程传输数据量较小,又避免了同步过程中网页与服务器之间的交互混乱等问题。

一个可能的实现方式中,请参考图2,详细如下:

在源网页一侧,基于网页请求采集请求数据、响应数据以生成网页请求记录数据,步骤如下:

s201,监听网页事件,当判断监听到的网页事件类型为网页请求时;

s202,根据网页请求的类型,根据预定的网页请求处理规则判断所述网页请求类型是否需要采集数据生成网页请求记录数据。判断结果包括s2021不采集、s2022采集,为s2021时执行步骤s203,为s2022时执行步骤s204;

s203,不处理;

s204,根据网页请求的类型,采集指定的数据项内容作为请求数据,采集指定的数据项作为响应数据,将所述请求数据、所述响应数据按照对应关系生成为网页请求记录数据;

s205,发送所述网页请求记录数据。

在目标网页一侧,基于所接收的网页请求记录数据处理发生的网页请求,步骤如下:

s206,接收网页请求记录数据;

s207,保存网页请求记录数据;

s208,监听到网页请求;

s209,根据预定的网页请求类型处理规则确定是否需要拦截所述网页请求。判断结果包括s2091不拦截、s2092拦截,为s2091时执行步骤s210,为s2092时执行步骤s211;

s210,根据网页请求正常从外部请求数据;

s211,拦截所述网页请求;

s212,从所述网页请求记录数据中获取对应的响应数据。

参考以上步骤,当在源网页中s201监听到网页请求后,执行s202对网页请求的类型进行判断,以确认该类型是否需要采集网页请求记录数据,即对需要在目标网页一侧通过网页请求记录数据提供响应数据的网页请求,采集网页请求记录数据;对目标网页中需正常对外请求数据的网页请求,此处不进行处理。所述预定的网页请求处理规则,例如,将xmlhttprequest请求、websocket请求、manifest请求,设定为采集网页请求记录数据,对于js请求、css请求、图片(img)请求、媒体(media)请求、字体(font)请求、document(doc)请求等,设定为不处理。s204中,针对不同类型的网页请求,根据预定的规则,对应采集所规定的数据项内容,例如,对于xmlhttprequest(xhr)请求,采集requesturl、requestmethod、statuscode、querystringparameters、response字符串作为采集数据项;对图片(img)请求,采集requesturl、requestmethod、statuscode、querystringparameters作为采集数据项;对websocket(ws)请求,采集requesturl、requestmethod、statuscode、messages中的data作为采集数据项等。以上为一些网页请求所使用的采集规则举例,所述规则需满足的要求为,当在目标网页中监听到一网页请求后,可根据所述网页请求提供的信息,通过以上所述数据项能够查找到对应的网页请求记录数据记录,基于所述规则采集的数据项满足生成所述响应信息的必要条件。

参考以上步骤,在目标网页中,s206接收网页请求记录数据后,执行s207在目标网页中保存处理,以供在目标网页中建立网页请求模拟服务,用于为指定类型的网页请求模拟提供查找及响应数据,参考步骤s212对该类型网页请求的处理。在目标网页中发生网页请求时,由s208监听,通过s209进行类型判断,根据判断结果选择是否进行拦截处理,正常对外请求数据或者通过网页请求模拟服务获取响应数据。如以上对网页请求处理规则的示例,当在目标网页中发生xmlhttprequest请求时,则拦截所述网页请求,在网页请求记录数据中获得对应的响应数据,当发生图片请求时,则正常对外获取图片。

根据以上实现方式,在源网页中根据网页请求类型选择对应的处理方式,以实现针对网页与外部动态交互的内容,采集数据生成网页请求记录数据,对静态的网页资源内容放弃采集,由此产生的有益效果是,在源网页中产生与外部的动态交互,对应的在目标网页中通过网页请求模拟服务获取数据,从而避免目标网页在同步过程中与外部重复交互导致混乱,同时保证了目标网页与源网页请求所获取的数据的一致性,达到网页同步的目的。同时避免了源网页向目标网页传输大量的静态网络资源数据,同步效率获得有效提升。

一个可能的实现方式中,源网页向目标网页发送同步数据,还包括网页数据,请参考图3,说明如下:

在源网页一侧:

s301,采集源网页中的部分或全部网页数据;

s302,生成用于同步的网页数据;

s303,向目标网页发送所述用于同步的网页数据;

在目标网页一侧:

s304,接收所述用于同步的网页数据;

s305,基于所述用于同步的网页数据包含的网页数据对应更新目标网页中的网页数据内容。

在以上实施例以及本申请的其它实施例中,所述网页数据包括但不限于网页html元素数据(htmlelements)、网页资源数据(sources)、网页程序数据(application相关数据,如manifest)、网页存储数据(storage数据,如localstorage、sessionstorage、本地数据库、cookies等)、缓存数据(cache数据,如cachestorage、applicationcache等)等。所述用于同步的网页数据,即为同步过程中源网页向目标网页发送的网页数据,用于目标网页基于其包含的网页数据内容,对应替换目标网页中的网页数据内容。

根据以上实现方式,提供了一种同步网页数据的方法,所述用于同步的网页数据,作为网页操作指令数据、网页请求记录数据的有效补充,如在同步建立的初始、在同步过程中两侧网页数据的一致性校验发现差异时,通过该方式实现网页数据同步。

一个可能的实现方式中,在同步过程中,使用同步状态标识控制同步的过程,请参考图4,详细如下:

在源网页一侧:

s401,在源网页中生成同步数据;

s402,对应于所述同步数据,生成同步状态标识;

s403,向目标网页发送所述同步状态标识;

在目标网页一侧:

s404,接收所述同步状态标识;

s405,在目标网页中执行相应的同步操作;

s406,读取所述同步数据对应的同步状态标识,基于其更新目标网页中存放的同步状态标识。

在以上实现方式中,s401在源网页中每生成一次同步数据,便执行一次向目标网页同步的动作,因此,在s402基于每次生成同步数据建立同步状态标识,所述同步状态标识即对应于一次同步。以上实现方式的同步状态标识,有利于识别源网页、目标网页的同步状态,以及控制同步的进程。可选的,所生成的同步状态标识具有连续的特征。可选的,源网页每次向目标网页发送同步数据,均携带同步状态标识信息。可选的,在s404接收所述同步状态标识后,根据目标网页当前同步状态对应的同步状态标识,检查所接收的同步状态标识是否连续,以确保无遗漏的同步操作,当发现遗漏时,发起同步网页数据校验请求。在本申请中,所述同步数据包括源网页向目标网页发送的用于执行同步的各种数据,包括但不限于网页操作指令数据、网页请求记录数据、用于同步的网页数据、定时器执行指令、指定的系统函数的执行结果数据、由网址信息生成的同步数据等。

一个可能的实现方式中,源网页中的网页发生变化,并不一定由用户操作、网页请求引起,还包括网页内部程序运行等特殊情形引起的网页内容改变,本实现方式针对该种情况,采用发送源网页网页数据至目标网页的方式实现同步效果,如图5所示,详细如下:

在源网页一侧:

s501,监听到源网页的网页数据内容发生改变;

s502,判断源网页中存放的同步状态标识是否更新,当判断无更新时,执行s503;

s503,基于所述发生改变的网页数据内容生成用于同步的网页数据;

s504,向目标网页发送所述用于同步的网页数据;

在目标网页一侧:

s505,接收所述用于同步的网页数据;

s506,基于所述用于同步的网页数据包含的网页数据对应更新目标网页中的网页数据内容。

以上实现方式中,s501监听网页数据内容是否发生变化,如使用mutationobserver,监视对dom树的更改,在某个dom发生了更改后,由所述改变产生一次事件,在该事件中执行s502判断同步状态标识是否更新,在监测到没有对应的更新后,执行s503生成用于同步的网页数据。通过本实现方式,可针对网页内部程序运行而导致的网页内容改变的情形,如网页内部定时器的执行程序等,通过发送网页数据并在目标网页中更新的方式,达到两侧网页显示效果相同的目的。

一个可能的实现方式中,目标网页主动向源网页发送同步网页数据校验请求,由源网页生成用于同步的网页数据,以替换目标网页中的网页数据。如图6所示,详细步骤如下:

在目标网页一侧:

s601,根据网页数据的标识信息,基于所述标识信息在目标网页中标识的网页数据生成第二消息摘要;

s602,根据所述标识信息与所述第二消息摘要生成待校验的网页数据记录;

s603,基于一个或多个待校验的网页数据记录,生成同步网页数据校验请求;

s604,基于一个或多个需在源网页中获取的网页数据所对应的标识信息,生成同步网页数据校验请求;

s605,发送同步网页数据校验请求;

在源网页一侧:

s606,接收同步网页数据校验请求;

s607,获取待校验的网页数据记录;

s608,判断待校验的网页数据记录类型。当为s6081获取差异化的网页数据时,执行步骤s609;当为s6082根据网页数据的标识信息获取网页数据时,执行步骤s612;

s609,获取标识信息在目标网页中标识的网页数据生成的第二消息摘要;

s610,根据标识信息在源网页中获取对应的网页数据,并生成第一消息摘要;

s611,比较所述第一消息摘要与所述第二消息摘要,当不相同时,将所述标识信息所标识的源网页中的网页数据生成为用于同步的网页数据;

s612,将所述网页数据的标识信息所标识的所述源网页中的网页数据生成为用于同步的网页数据;

s613,发送所述用于同步的网页数据;

在目标网页一侧:

s614,接收所述用于同步的网页数据;

s615,基于其包含的网页数据对应替换目标网页中的网页数据内容。

在以上实现方式中,目标网页可通过以下方式之一向源网页发起同步网页数据校验请求:方式一,向源网页发送目标网页中包含的网页数据的消息摘要,以校验目标网页数据的一致性,参考步骤s601~s603,该方式基于网页数据校验目的;方式二,向源网页发送网页数据的标识信息,请求源网页返回该标识信息对应的网页数据,参考步骤s604,该方式基于请求网页数据的目的。对应于两种网页数据校验请求的发起方式,在源网页中,s608对所述网页数据校验请求中包含的待校验的网页数据记录类型进行判断,当确认为根据网页数据的标识信息获取网页数据时,即对应于上述方式一,基于请求网页数据目的,则直接在源网页中查找对应的网页数据内容,生成用于同步的网页数据返回;当确认为获取差异化的网页数据时,即对应于上述方式二,基于网页数据校验目的,则执行s609获取目标网页的网页数据生成的消息摘要,对应的,执行s610在源网页中将对应的网页数据生成为另一个消息摘要,通过s611的比较操作,当两者生成的消息摘要不相同时,则判断该部分网页数据存在差异,将该部分网页数据发送至目标网页,由步骤s615执行网页数据的更新操作。可选的,以上s601、s610中的生成消息摘要,按照网页数据的结构(如dom树)为每个节点对应的网页数据生成消息摘要,并按照网页数据的结构对应存放所生成的消息摘要,最终生成结构化的第一消息摘要、第二消息摘要,在s611中根据消息摘要存放的结构对应比较,获得需同步的差异化部分节点,根据节点提取需同步的网页数据,生成用于同步的网页数据。

以上实现方式分别提供了目标网页校验与获取网页数据的方法,在具体的实施场景中,例如在首次建立网页同步时,通过本实现方法获取网页数据;在判断目标网页中的网页数据可能与源网页存在差异时,通过本实现方法校验并更新网页数据,例如,因同步的两侧网页浏览器运行环境、独立运行的网页程序、定时器执行程序、与本地相关的系统函数执行等引起的差异问题,均可导致网页数据不同的结果,由此呈现出不同的网页显示结果,因此通过本实现方法,还有利于在同步过程中阶段性实时校正,保证同步结果。

可选的,以上实现方式可分解出两个独立的实施方式,如将s601、s602、s603、s605、s606、s607、s609、s610、s611、s613、s614、s615步骤组合为一种实现方式,以实现基于网页数据校验目的获取并更新网页数据;将s604、s605、s606、s607、s612、s613、s614、s615步骤组合为另一种实现方式,以实现基于请求网页数据的目的获取并更新网页数据。

在一种可能的实现方式中,目标网页在未接收到同步数据的情况下,监听到网页数据发生变化,向源网页发起同步网页数据校验请求,参考图7,详细步骤如下:

在目标网页一侧:

s701,监听到目标网页的网页数据内容发生改变;

s702,判断目标网页中存放的同步状态标识是否有对应的更新,当确认没有更新时执行s703;

s703,基于所述发生改变的网页数据内容所对应的网页数据的标识信息生成同步网页数据校验请求;

s704,向源网页发送所述同步网页数据校验请求;

在源网页一侧:

s705,接收所述同步网页数据校验请求;

s706,处理所述同步网页数据校验请求,根据所述网页数据的标识信息所标识的源网页中的网页数据生成为用于同步的网页数据;

s707,发送所述用于同步的网页数据;

在目标网页一侧:

s708,接收所述用于同步的网页数据;

s709,基于其包含的网页数据对应替换目标中的网页数据内容。

以上实现方式中,s701监听网页数据内容是否发生变化,同样可使用如mutationobserver的监听方式;s702中判断同步状态标识是否更新,可选的,s702也可以通过对是否接收过网页同步数据,或是否执行过同步操作进行判断;s706处理网页数据校验请求的详细步骤,可参考上一实施例。通过本实现方式,可针对目标网页内部程序运行而导致的网页内容改变的情形,如网页内部定时器的执行程序等,通过发送网页数据校验请求的方式,达到两侧网页显示效果相同的目的。

在具体的实施场景中,关于同步网页数据校验请求的实现方式,除以上实现方式外,还包括,源网页向目标网页发起同步网页数据校验请求(所述请求中包括基于源网页网页数据生成的消息摘要信息),以在目标网页中校验网页数据的一致性;源网页或目标网页按照预定的时间间隔向另一侧发送同步网页数据校验请求,以在同步过程中定时校验网页数据的一致性;在目标网页中完成相应的同步操作后,发送执行通知的同时,向源网页发起同步网页数据校验请求,以在每次同步操作完成后校验网页数据的一致性。

在另一种可能的实现方式中,通过分析网页运行中网页发生的变化的方式执行同步,其发生变化的方式如:用户操作、网页请求、网页内部定时器(如settimeout)执行等,以下实现方式提供对网页同步过程中的定时器执行进行处理,请参考图8,详细如下:

在源网页一侧:

s801,监测到定时器执行;

s802,基于定时器的执行内容,生成用于在目标网页中执行的定时器执行指令;

s803,发送所述定时器执行指令;

在目标网页一侧:

s804,接收所述定时器执行指令;

s805,基于所述定时器执行指令执行所指定的执行内容;

s806,监测到定时器执行;

s807,停止所述定时器执行。

通过以上实现方式,屏蔽目标网页中定时器的执行,避免两侧定时器同时执行导致的不同步情况,通过接收源网页发送的定时器执行指令,该定时器执行指令包括在源网页中定时器执行的内容,然后在目标网页中执行相同内容,由此达到两侧定时器相同执行的目的,使两侧保持相同的执行效果。需要说明的是,所述定时器执行指令同样可作为一种同步数据,可选地,在所述定时器执行指令发送过程中携带同步状态标识信息。

在另一种可能的实现方式中,在同步的两侧执行相同的网页程序,在确保定时器执行完全相同的情况下,仍存在执行不一致的情形,如在程序中包括获取系统时间、获取ip等系统函数,由此可导致不完全的同步,本实现方式针对特别的系统函数在同步过程中进行处理,请参考图9,详细步骤如下:

在源网页一侧:

s901,监测指定的系统函数的执行;

s902,获取所述指定的系统函数执行的结果生成执行结果数据;

s903,发送所述执行结果数据;

在目标网页一侧:

s904,接收所述执行结果数据;

s905,存放所述执行结果数据;

s906,监测到指定的系统函数执行;

s907,在所存放的执行结果数据中查找对应的执行结果,作为本系统函数的执行结果。

以上实现方式中,所述指定的系统函数指在不同的时间、运行环境或浏览器中执行,执行结果不一致的函数。通过以上实现方式,保证了目标网页与源网页中指定的系统函数执行结果的一致性。

在一种可能的实现方式中,考虑到同步两侧的网页程序独立运行、数据传输、网络延时等因素,均可造成网页同步出现异常,本实现方式提供一种流水式的同步过程控制方法,请参考图10,详细步骤如下:

在源网页一侧:

s1001,生成同步数据;

s1002,更新源网页的同步标识信息;

s1003,暂停所述源网页中的程序执行;

s1004,发送同步数据、同步标识;

在目标网页一侧:

s1005,接收同步数据、同步标识;

s1006,执行同步操作;

s1007,生成同步执行完成通知;

s1008,发送所述同步执行完成通知;

在源网页一侧:

s1009,收到所述目标网页发送的同步执行完成通知;

s1010,继续所述源网页中的程序执行。

通过以上实现方式,在目标网页完成对应于源网页中的同步操作后,向所述源网页发送执行完成通知,由源网页继续执行,进行下一次同步,使整体网页同步有序进行。

在另一种可能的实现方式中,考虑到本申请通过在同步两侧独立运行网页程序的方式进行同步,本实现方式提供了一种使同步的两侧可获得相同的初始运行状态,请参考图11,详细步骤如下:

在源网页一侧:

s1101,接收到所述目标网页发送的同步请求;

s1102,刷新所述源网页;

s1103,基于所述源网页的当前网址生成同步数据;

s1104,发送所述同步数据;

在目标网页一侧:

s1105,接收所述同步数据;

s1106,基于其包含的网址信息重新加载目标网页。

通过以上实现方式,在目标网页与源网页首次建立同步时,对源网页进行刷新,同时向目标网页发送当前网址,由目标网页基于该网址同时加载,由此,使目标网页、源网页获得相同的初始运行状态(如变量赋值相同等)。优选的,在源网页刷新过程中,根据本申请其它实施例提供的方法,生成网页请求记录数据,在目标网页中根据所述网页请求记录数据处理目标网页加载过程中发生的网页请求,由此避免在加载过程中与服务器重复交互,使同步两侧获得相同的运行状态。需要说明的是,本实现方法中由网址信息生成的同步数据,同样可作为同步数据的一种。

结合以上实现方式,在目标网页与源网页首次建立同步时,还包括同步网页数据的实现方式,请参考图12,将以上实现方式的s1103替换为s1203,基于所述源网页包含的网页数据生成同步数据;相应的,将s1106替换为s1206,基于所接收的网页数据,替换目标网页中的网页数据。除以上差异外,本实现方式与上一实现方式流程基本相同,在此不再赘述。

在具体的实施场景中,本申请提供的网页同步实施方式可通过以上各实施例所提供的网页同步方法的一个或多个组合进行实现,且在每个实施例中,一些步骤的执行顺序无特别限定,在具体实现时,可以同时执行,或者,也可根据预设次序顺序执行。

下面结合图13对所述网页同步系统的各个构成模块进行具体的介绍:

所述同步系统包括源网页10、目标网页20。

所述源网页10包括:

用户操作采集模块101,用于基于源网页中发生的用户操作,采集所述用户操作、用户操作的数据;

网页操作指令数据生成模块102,用于基于所述用户操作采集模块101所采集的用户操作、用户操作的数据,生成网页操作指令数据;

网页请求采集模块103,用于基于所述源网页中的网页请求,采集所述网页请求的请求信息,采集所述网页请求的响应信息;

网页请求记录数据生成模块104,用于根据所述网页请求采集模块103所采集的请求信息生成请求数据,根据网页请求采集模块103所采集的响应信息生成响应数据,将所述请求数据、所述响应数据生成为网页请求记录数据;

数据通信模块105,用于向所述目标网页发送所述网页操作指令数据、网页请求记录数据;

所述目标网页20包括:

网页操作指令执行模块201,用于基于所述网页操作指令数据中包含的网页操作指令,执行所述网页操作指令;

网页请求监听模块202,用于监听目标网页中发生的网页请求;

网页请求模拟服务模块203,用于根据所述网页请求监听模块202中监听到的网页请求,拦截所述网页请求,根据该网页请求的请求信息在所述网页请求记录数据中查找到相应的数据记录,将所述数据记录中包含的响应数据作为本次目标网页中该网页请求的响应数据返回;

数据通信模块204,用于接收所述源网页发送的所述网页操作指令数据、网页请求记录数据。

在一种可能的网页同步系统中,请参考图14:

所述源网页10还包括:

同步过程控制模块106,用于执行同步过程控制,包括,根据源网页发送的同步数据,生成同步状态标识,所述同步状态标识用于标识一个同步状态,其中,所述同步数据的类型包括但不限于网页操作指令数据、网页请求记录数据、用于同步的网页数据等;

网页数据监听模块107,用于监听源网页中的网页数据是否发生了变化;

网页数据同步校验模块108,用于基于所述目标网页发送的同步网页数据校验请求,根据所述网页同步数据包含的待校验的网页数据记录,校验所述源网页与所述目标网页中相同网页标识所对应的网页数据的一致性;

同步网页数据生成模块109,用于根据所述源网页中的网页数据,生成用于同步的网页数据;还用于根据所述目标网页发送的网页数据的标识信息,基于所述网页数据的标识信息在所述源网页中对应的网页数据内容,生成用于同步的网页数据;还用于在所述网页数据同步校验模块108校验所述目标网页与所述源网页的网页数据不一致时,基于源网页中对应的网页数据生成用于同步的网页数据;还用于在所述网页数据监听模块107监听到网页数据内容发生改变后,判断所述源网页中存放的同步状态标识是否更新,当确认所述网页状态标识信息未更新时,基于所述发生改变的网页数据内容生成用于同步的网页数据;

其中,所述数据通信模块105,还用于向所述目标网页发送所述同步状态标识、所述用于同步的网页数据,还用于接收所述目标网页发送的同步网页数据校验请求;

所述目标网页20还包括:

同步过程控制模块205,用于在所述目标网页中执行同步过程控制,包括,根据所接收的所述源网页发送的同步数据,在目标网页中执行相应的同步操作后,读取所述同步数据对应的同步状态标识,基于其更新目标网页中存放的同步状态标识;

网页请求处理模块206,用于根据所述网页请求监听模块202监听到的网页请求,基于所述网页请求的类型,根据预定的网页请求处理规则判断,获取所述网页请求的处理方式,并根据所述处理方式处理所述网页请求,所述网页请求处理方式包括,拦截所述网页请求并将所述网页请求信息发送至所述网页请求模拟服务模块203处理、不拦截所述网页请求;

网页数据监听模块207,用于监听目标网页中的网页数据是否发生了变化;

同步网页数据校验请求生成模块208,用于生成同步网页数据校验请求,所述同步网页数据校验请求用于向所述源网页发送,以校验网页同步过程中所述目标网页、所述源网页包含的网页数据的一致性;

网页数据替换模块209,用于根据从所述源网页接收的用于同步的网页数据,根据所述用于同步的网页数据所包含的网页数据内容,对应更新所述目标网页中的网页数据;

其中,所述数据通信模块204,还用于接收所述源网页发送的同步状态标识、所述用于同步的网页数据,还用于发送所述同步网页数据校验请求。

在另一种可能的网页同步系统中,请参考图15:

所述源网页10还包括:

网页定时器监测处理模块110,用于对所述源网页中的定时器执行监测,当监测到所述定时器执行后,基于所述定时器的执行内容,生成用于在所述目标网页中执行的定时器执行指令;

特殊系统函数监测处理模块111,用于在所述源网页监测指定的系统函数的执行,当监测到所述指定的系统函数执行时,获取所述指定的系统函数执行的结果生成执行结果数据;

所述同步过程控制模块106,还用于在所述源网页每一次更新同步状态标识后,暂停所述源网页中的程序执行,直到收到所述目标网页发送的同步执行完成通知时,继续所述源网页中的程序执行;还用于在接收到所述目标网页发送的同步请求时,刷新所述源网页,在所述源网页加载完成后,将所述源网页的当前网址生成同步数据,或者,调用同步网页数据生成模块109将所述源网页包含的网页数据生成用于同步的网页数据;

所述数据通信模块105,还用于向所述目标网页发送所述定时器执行指令、所述指定的系统函数执行的结果生成的执行结果数据;还用于向所述目标网页发送所述同步过程控制模块106处理所述目标网页同步请求生成的用于同步的网页数据;还用于接收所述目标网页发送的同步执行完成通知;

所述目标网页20还包括:

网页定时器执行控制模块210,用于在监测到所述目标网页中的定时器执行时,停止所述定时器执行;还用于根据从所述源网页接收的定时器执行指令,基于所述定时器执行指令执行所指定的执行内容;

系统函数执行控制模块211,用于在监测到所述目标网页中指定的系统函数执行时,根据从所述源网页接收的指定的系统函数执行的结果信息,在所述指定的系统函数执行的结果信息中查找对应的执行结果,基于其设置所述目标网页中指定的系统函数的执行结果;

所述同步过程控制模块205,还用于在所述目标网页中完成所述源网页所发送的同步数据对应的同步执行操作后,生成同步执行完成通知;还用于在首次向所述源网页发送网页同步请求后,根据所接收的网页数据,调用所述网页数据替换模块209替换网页数据;

所述数据通信模块204,还用于接收所述源网页发送的所述定时器执行指令、所述指定的系统函数执行的结果生成的执行结果数据;还用于向所述源网页发送同步执行完成通知。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk)等。

以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1