CN109828977A - 同步表单数据的方法、装置和存储介质及客户端、服务端 - Google Patents
同步表单数据的方法、装置和存储介质及客户端、服务端 Download PDFInfo
- Publication number
- CN109828977A CN109828977A CN201811613118.6A CN201811613118A CN109828977A CN 109828977 A CN109828977 A CN 109828977A CN 201811613118 A CN201811613118 A CN 201811613118A CN 109828977 A CN109828977 A CN 109828977A
- Authority
- CN
- China
- Prior art keywords
- data
- operational order
- client
- server
- target list
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开涉及一种同步表单数据的方法、装置和存储介质及客户端、服务端,该方法包括:接收客户端发送的同步请求消息,所述同步请求消息包括待同步的目标表单数据和所述目标表单数据对应的第一操作指令集;确定所述目标表单数据在表单数据库中是否存在对应的原始表单数据;在所述目标表单数据在所述表单数据库中存在对应的原始表单数据时,对所述表单数据库中的原始表单数据执行所述第一操作指令集得到表单同步数据。
Description
技术领域
本公开涉及信息传输领域,具体地,涉及一种同步表单数据的方法、装置和存储介质及客户端、服务端。
背景技术
随着计算机技术和网络技术的迅速发展,电子形式的表单数据应运而生。目前,用户通常可以通过客户端访问服务端中的表单数据,以对表单数据进行在线编辑操作。
当客户端与服务端的网络连接异常(如网络连接断开或者网络连接不稳定等)时,用户只能对该表单数据进行离线编辑,并等到网络恢复正常时,将离线编辑后的表单数据同步至服务端的表单数据库中。
但是,由于编辑后的表单数据可能数据量较大,因此,服务端在将该编辑后的表单数据同步至表单数据库时,同步时延较大,导致数据同步的效率较低。
发明内容
为了解决上述问题,本公开提出了一种同步表单数据的方法、装置和存储介质及客户端、服务端。
根据本公开实施例的第一方面,提供一种同步表单数据的方法,应用于服务端,所述方法包括:接收客户端发送的同步请求消息,所述同步请求消息包括待同步的目标表单数据和所述目标表单数据对应的第一操作指令集;确定所述目标表单数据在表单数据库中是否存在对应的原始表单数据;在所述目标表单数据在所述表单数据库中存在对应的原始表单数据时,对所述表单数据库中的原始表单数据执行所述第一操作指令集得到表单同步数据。
可选地,在所述对所述表单数据库中的原始表单数据执行所述第一操作指令集得到表单同步数据后,所述方法还包括:向所述客户端发送同步完成消息;在所述客户端接收到所述同步完成消息后,接收所述客户端发送的第二操作指令集,所述第二操作指令集包括在所述客户端发送所述同步请求消息至所述客户端接收到所述同步完成消息之间的时间段内,所述目标表单数据新增的操作指令;对所述表单同步数据执行所述第二操作指令集中的操作指令。
根据本公开实施例的第二方面,提供一种同步表单数据的方法,应用于客户端,所述方法包括:获取待同步的目标表单数据,以及所述目标表单数据对应的第一操作指令集;向服务端发送同步请求消息,所述同步请求消息包括所述目标表单数据和所述目标表单数据对应的第一操作指令集,以便所述服务端在确定所述目标表单数据在所述表单数据库中存在对应的原始表单数据时,对所述表单数据库中的原始表单数据执行所述第一操作指令集中的指令得到表单同步数据。
可选地,在向所述服务端发送同步请求消息后,所述方法还包括:在所述服务端得到所述表单同步数据后,接收所述服务端发送的同步完成消息;在接收到所述同步完成消息后,确定所述目标表单数据是否存在对应的第二操作指令集,所述第二操作指令集包括在所述客户端发送所述同步请求消息至所述客户端接收到所述同步完成消息之间的时间段内,所述目标表单数据新增的操作指令;在确定存在对应的所述第二操作指令集时,将所述第二操作指令集发送至所述服务端,以便所述服务端对所述表单同步数据执行所述第二操作指令集中的操作指令。
根据本公开实施例的第三方面,提供一种同步表单数据的装置,应用于服务端,包括:请求接收模块,用于接收所述客户端发送的同步请求消息,所述同步请求消息包括待同步的目标表单数据和所述目标表单数据对应的第一操作指令集;第一判断模块,用于确定所述目标表单数据在表单数据库中是否存在对应的原始表单数据;同步模块,用于在所述目标表单数据在所述表单数据库中存在对应的原始表单数据时,对所述表单数据库中的原始表单数据执行所述第一操作指令集得到表单同步数据。
可选地,所述装置还包括:完成消息发送模块,用于向所述客户端发送同步完成消息;指令接收模块,用于在所述客户端接收到所述同步完成消息后,接收所述客户端发送的第二操作指令集,所述第二操作指令集包括在所述客户端发送所述同步请求消息至所述客户端接收到所述同步完成消息之间的时间段内,所述目标表单数据新增的操作指令;指令执行模块,用于对所述表单同步数据执行所述第二操作指令集中的操作指令。
根据本公开实施例的第四方面,提供一种同步表单数据的装置,应用于客户端,包括:表单数据获取模块,用于获取待同步的目标表单数据,以及所述目标表单数据对应的第一操作指令集;请求发送模块,用于向服务端发送同步请求消息,所述同步请求消息包括所述目标表单数据和所述目标表单数据对应的第一操作指令集,以便所述服务端在确定所述目标表单数据在所述表单数据库中存在对应的原始表单数据时,对所述表单数据库中的原始表单数据执行所述第一操作指令集中的指令得到表单同步数据。
可选地,所述装置还包括:完成消息接收模块,用于在所述服务端得到所述表单同步数据后,接收所述服务端发送的同步完成消息;第三判断模块,用于在接收到所述同步完成消息后,确定所述目标表单数据是否存在对应的第二操作指令集,所述第二操作指令集包括在所述客户端发送所述同步请求消息至所述客户端接收到所述同步完成消息之间的时间段内,所述目标表单数据新增的操作指令;指令发送模块,用于在确定存在对应的所述第二操作指令集时,将所述第二操作指令集发送至所述服务端,以便所述服务端对所述表单同步数据执行所述第二操作指令集中的操作指令。
根据本公开实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面所述方法的步骤。
根据本公开实施例的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第二方面所述方法的步骤。
根据本公开实施例的第七方面,提供一种服务端,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面所述方法的步骤。
根据本公开实施例的第八方面,提供一种客户端,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现上述第二方面所述方法的步骤。
通过上述技术方案,在进行表单数据同步,将待同步的目标表单数据和所述目标表单数据对应的第一操作指令集发送至服务端,当服务端确定所述目标表单数据在所述表单数据库中存在对应的原始表单数据时,对所述表单数据库中的原始表单数据执行所述第一操作指令集得到表单同步数据,这样,在进行表单数据同步时,本公开只需要通过第一操作指令集对原始表单数据的相关数据进行更新即可,无需同步完整的目标表单数据,并且由于操作指令的执行时间较快,从而降低了表单数据同步的延迟,提高了表单数据同步的效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为本公开示例性实施例示出的一种同步表单数据的方法的流程示意图;
图2为本公开示例性实施例示出的另一种同步表单数据的方法的流程示意图;
图3为本公开示例性实施例示出的又一种同步表单数据的方法的流程示意图;
图4为本公开示例性实施例示出的一种同步表单数据的装置框图;
图5为本公开示例性实施例示出的另一种同步表单数据的装置框图;
图6为本公开示例性实施例示出的又一种同步表单数据的装置框图;
图7为本公开示例性实施例示出的第四种同步表单数据的装置框图;
图8是根据一示例性实施例示出的一种服务端的框图;
图9是根据又一示例性实施例示出的一种客户端的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
首先,对本公开的应用场景进行说明,本公开可以应用于在线表单编辑的场景,在该场景下,服务端的表单数据库中存储有多个原始表单数据,在进行表单数据的在线编辑时,服务端会将需要用户编辑的原始表单数据发送至客户端,客户端将该原始表单数据作为当前表单数据展示给用户,用户可以通过客户端对该当前表单数据进行编辑得到待同步的目标表单数据,并通过网络将该目标表单数据发送至服务端,但是,当客户端与服务端的网络连接出现异常时,例如,客户端移动至网络信号较差的区域(如偏远地区、电梯以及地下车库等),会导致网络连接出现信号不稳定,甚至断开等网络异常情况,此时,客户端可以将该当前表单数据进行本地存储,用户可以通过客户端对该本地存储的当前表单数据进行离线编辑,若客户端确定用户对该本地存储的当前表单数据进行了离线编辑,则根据编辑结果更新本地存储的当前表单数据得到该目标表单数据,在该网络连接恢复正常时,将该目标表单数据发送至服务端,该服务端在接收到该目标表单数据后,在表单数据库中确定该目标表单数据对应的原始表单数据,并用该目标表单数据覆盖表单数据库中的原始表单数据,从而完成表单数据的同步,若客户端确定用户对该本地存储的当前表单数据未进行离线编辑,此时,可以确定该当前表单数据未发生更新,则无需发起表单数据的同步。
但是,服务端在进行表单数据的同步时,需要将编辑后的目标表单数据完整的同步到表单数据库中,考虑到编辑后的目标表单数据可能数据量较大,因此,数据同步时的同步延时也可能较大,导致同步效率较低,对于用户侧而言,在同步延迟较大的情况下,用户可能会感知到数据同步延迟的过程,例如,在表单数据同步过程中,客户端展示的目标表单数据可能会处于假死状态,用户无法对该目标表单数据进行操作,直至该目标表单数据同步完成后恢复,或者,在表单数据同步过程中,客户端可以向用户展示同步进度(如进度条),方便用户查看同步进度,但用户仍然需要等待目标表单数据同步完成,才能继续进行编辑,可见,在同步延迟较大的情况下,会干扰用户的正常编辑操作,导致用户需要等待同步完成才能进行后续的编辑操作,因此,用户的体验较差。
为了解决上述问题,本公开提供一种同步表单数据的方法、装置和存储介质以及电子设备,在进行表单数据同步时,能够通过用户编辑操作生成的操作指令对服务端的表单数据库中的原始表单数据进行更新,无需同步完整的目标表单数据,并且由于操作指令的执行时间较快,从而降低了表单数据同步的延迟,提高了表单数据同步的效率,并且由于表单数据同步延迟的降低,从而降低了用户对表单数据同步过程的感知,进而减少了对用户正常操作的干扰,提高了用户体验。
下面结合具体实施例对本公开进行说明。
图1为本公开示例性实施例示出的一种同步表单数据的方法的流程示意图,本实施例可以应用于服务端,如图1所示,该方法包括:
S101、接收客户端发送的同步请求消息,该同步请求消息包括待同步的目标表单数据和该目标表单数据对应的第一操作指令集。
这里,客户端在确定网络连接异常(如网络断开或者网络信号不稳定等)时,可以将当前表单数据进行本地存储,此时,用户可以继续对当前表单数据进行编辑操作(如修订数据、删除数据以及填充数据等操作),从而对该当前表单数据进行更新,其中,用户通过客户端每对该当前表单数据进行一次编辑操作,该客户端都会生成每次编辑操作对应的操作指令,在本实施例中,客户端可以将每次编辑操作生成的操作指令,以及进行全部编辑操作后更新的当前表单数据存储在本地建立的数据文件中,若该客户端确定网络连接恢复正常,则确定存储的全部操作指令形成的指令集即为该第一操作指令集,更新后的当前表单数据即为待同步的目标表单数据。
例如,用户在对当前表单数据进行编辑操作时,依次进行了修订数据的操作、删除数据的操作以及填充数据的操作,按照用户操作的顺序,客户端依次生成了修订指令、删除指令以及填充指令,则该修订指令、删除指令以及填充指令形成的集合即为该第一操作指令集,而该当前表单数据经过修订指令、删除指令以及填充指令更新后的当前表单数据即为该目标表单数据。
需要说明的是,在确定网络连接异常时,客户端可以周期性的向服务端发送网络连接请求消息,并确定在预设时间内是否接收到该服务端根据该网络连接请求消息发送的连接响应消息,在预设时间内接收到该连接响应消息时,确定与该服务端的网络连接恢复正常,在达到预设时间时,若未接收到该连接响应消息,确定与该服务端的网络连接未恢复正常。
在本步骤中,客户端在确定网络连接恢复正常时,可以获取该待同步的目标表单数据和该目标表单数据对应的第一操作指令集,并向该服务端发送同步请求消息。
S102、确定该目标表单数据在表单数据库中是否存在对应的原始表单数据。
其中,考虑到可能存在其他客户端将该表单数据库中的原始表单数据删除的可能性,因此,在接收到该同步请求消息后,需要先确定该目标表单数据在表单数据库中是否存在对应的原始表单数据。
在一种可能的实现方式中,可以根据目标表单数据的表单标识(如表单名称或者编号等信息)确定是否存在对应的原始表单数据,示例地,服务端在接收到目标表单数据后,可以从该目标变单数据中获取该目标变单数据的表单标识,并在表单数据库中确定是否存在与该表单标识相同的原始表单数据,在确定存在与该表单标识相同的原始表单数据,则确定在表单数据库中存在对应的原始表单数据,在确定不存在与该表单标识相同的原始表单数据,则确定在表单数据库中不存在对应的原始表单数据。
S103、在该目标表单数据在该表单数据库中存在对应的原始表单数据时,对该表单数据库中的原始表单数据执行该第一操作指令集中的操作指令得到表单同步数据。
在本步骤中,可以按照第一操作指令集中操作指令的生成顺序对该原始表单数据进行编辑,从而模拟目标表单数据的编辑过程,以便在表单数据库中将该原始表单数据通过该第一操作指令集更新为目标表单数据,从而完成表单数据的同步。
其中,每个操作指令包含有该操作指令的生成时间,从而根据该生成时间确定操作指令的生成顺序,例如,第一操作指令集包括修订指令、删除指令和填充指令,且修订指令对应的生成时间为T1、删除指令对应的生成时间为T2,填充指令对应的生成时间为T3,根据该生成时间确定操作指令的执行顺序为:先执行修订指令,再执行删除指令,最后执行填充指令,则在按照第一操作指令集中操作指令的生成顺序对该原始表单数据进行编辑时,可以对该原始表单数据先执行修订指令,再执行删除指令,最后执行填充指令,从而得到表单同步数据。
在该目标表单数据在该表单数据库中不存在对应的原始表单数据时,可以将该目标表单数据直接同步至该表单数据库中。
在本步骤中,考虑到在数据大并发场景下,服务器可能会接收到多个客户端的同步请求消息,并根据该同步请求消息通过一个主线程进行表单数据的同步,考虑到在数据大并发场景下,通过一个主线程进行表单数据同步可能会导致服务端数据处理的负担较重,降低表单数据同步的效率,为了解决该问题,在本公开另一实施例中,服务端在接收到客户端发送的同步请求指令后,可以为该客户端创建对应的用于进行表单数据同步的子线程,并在接收到客户端发送的目标表单数据和对应的第一操作指令集后,根据客户端标识确定该客户端对应的子线程,并通过该子线程进行表单数据的同步,这样,服务端针对不同客户端的同步请求,通过各自对应的子线程分别进行表单数据同步,减少了主线程同步数据的处理负担,提高了数据的并发处理能力,从而有效利用了服务端的处理资源。
服务端在完成数据同步后,会向客户端发送同步完成消息,以告知客户端表单数据同步完成,客户端在接收到该同步完成消息后,会向服务端发送同步响应消息,服务端在接收到该同步响应消息后,删除为该客户端创建的子线程。
但是,考虑到在客户端发送同步请求消息至客户端接收到同步完成消息的时间段内,用户可能会对该目标表单数据再次进行了编辑,从而产生新的操作指令(即第二操作指令),因此,在一种可能的实现方式中,客户端在接收到服务端发送的同步完成消息后,可以确定是否存在新增的第二操作指令集,该第二操作指令集包括在该客户端发送该同步请求消息至该客户端接收到该同步完成消息之间的时间段内,该目标表单数据新增的操作指令,在确定不存在该第二操作指令集时,向服务端发送同步响应信息,服务端根据该同步响应信息删除该客户端对应的子线程,在确定存在该第二操作指令集时,则向服务端发送该第二操作指令集,服务端接收该客户端发送的第二操作指令集,并通过为该客户端创建的子线程对该表单同步数据执行该第二操作指令集中的操作指令,已完成对该表单同步数据的更新,在更新完成后,服务端再次向客户端发送同步完成消息,客户端在接收到服务端再次发送的同步完成消息后,会向服务端发送同步响应消息,服务端在接收到该同步响应消息后,删除为该客户端创建的子线程。
这里,仍然可以通过操作指令的生成时间确定是否存在第二操作指令集,在操作指令的生成时间位于该客户端发送该同步请求消息至该客户端接收到该同步完成消息之间的时间段内,则确定存在该第二操作指令集。
这样,针对在客户端发送同步请求消息至客户端接收到同步完成消息的时间段内再次被编辑的目标表单数据,可以将第二操作指令集发送至服务端,以便服务端对表单同步数据执行该第二操作指令集中的操作指令,完成对表单同步数据的更新,无需再向服务端发送目标表单数据,由于操作指令数量较小,且执行较快,因此,通过第二操作指令集中的操作指令再次进行同步,能够降低同步延迟,提高同步效率。
需要说明的是,上述通过第二操作指令集中的操作指令再次进行同步的过程可以参考上述对该表单数据库中的原始表单数据执行该第一操作指令集得到表单同步数据的过程,此处不再赘述。
采用上述方法,在进行表单数据同步时,只需要按照操作指令对原始表单数据进行更新即可,无需同步完整的目标表单数据,并且由于操作指令的执行时间较快,从而降低了表单数据同步的延迟,提高了表单数据同步的效率,另外,由于表单数据同步延迟的降低,从而降低了用户对表单数据同步过程的感知,进而减少了对用户正常操作的干扰,提高了用户体验。
图2为本公开示例性实施例示出的一种同步表单数据的方法的流程示意图,本实施例可以应用于客户端,如图2所示,该方法包括:
S201、获取待同步的目标表单数据,以及该目标表单数据对应的第一操作指令集。
其中,客户端在确定数据无法发送至服务端(即网络连接断开),或者数据传输出现延迟(即网络信号不稳定),则确定网络连接异常,此时,可以将当前表单数据进行本地存储,此时,用户可以继续对当前表单数据进行编辑操作(如修订数据、删除数据以及填充数据等操作),从而对该当前表单数据进行更新,其中,用户通过客户端每对该当前表单数据进行一次编辑操作,该客户端都会生成每次编辑操作对应的操作指令,在本实施例中,客户端可以将每次编辑操作生成的操作指令,以及进行全部编辑操作后更新的当前表单数据存储在本地建立的数据文件中,若该客户端确定网络连接恢复正常,则确定存储的全部操作指令形成的指令集即为该第一操作指令集,而更新后的当前表单数据即为待同步的目标表单数据。
例如,用户在对当前表单数据进行编辑操作时,依次进行了修订数据的操作、删除数据的操作以及填充数据的操作,按照用户操作的顺序,客户端依次生成了修订指令、删除指令以及填充指令,则该修订指令、删除指令以及填充指令形成的集合即为该第一操作指令集,而该当前表单数据经过修订指令、删除指令以及填充指令更新后的当前表单数据即为该目标表单数据。
需要说明的是,在确定网络连接异常时,客户端可以周期性的向服务端发送网络连接请求消息,并确定在预设时间内是否接收到该服务端根据该网络连接请求消息发送的连接响应消息,在预设时间段内接收到该连接响应消息时,确定与该服务端的网络连接恢复正常,在达到预设时间时,若未接收到该连接响应消息,确定与该服务端的网络连接未恢复正常。
在本步骤中,客户端在确定网络连接恢复正常时,可以获取该待同步的目标表单数据和该目标表单数据对应的第一操作指令集。
S202、向服务端发送同步请求消息,该同步请求消息包括该目标表单数据和该目标表单数据对应的第一操作指令集,以便该服务端在确定该目标表单数据在该表单数据库中存在对应的原始表单数据时,对该表单数据库中的原始表单数据执行该第一操作指令集中的指令得到表单同步数据。
其中,客户端在接收到同步完成消息后,还可以将本地存储的目标表单数据删除,从而降低客户端的存储负担。
考虑到在客户端发送同步请求消息至客户端接收到同步完成消息的时间段内,用户可能会对该目标表单数据再次进行了编辑,从而产生新的操作指令,因此,本实施例可以将再次编辑后的目标表单数据同步至服务端的表单数据库中。
在一种可能的实现方式中,在该服务端得到该表单同步数据后,客户端可以接收该服务端发送的同步完成消息,并在接收到该同步完成消息后,确定该目标表单数据是否存在第二操作指令集,该第二操作指令集包括在该客户端发送该同步请求消息至该客户端接收到该同步完成消息之间的时间段内,该目标表单数据新增的操作指令,在确定存在该第二操作指令集时,将该第二操作指令集发送至该服务端,以便该服务端根据该第二操作指令集更新该表单同步数据,这样,针对在客户端发送同步请求消息至客户端接收到同步完成消息的时间段内再次被编辑的目标表单数据,可以将第二操作指令集发送至服务端进行表单数据同步,无需再向服务端发送目标表单数据,由于操作指令数量较小,且执行较快,因此,通过第二操作指令集中的操作指令再次进行同步,能够降低同步延迟,提高同步效率。
这里,在客户端发送同步请求消息至客户端接收到同步完成消息的时间段内,若用户再次编辑了目标表单数据,会将编辑过程中产生的操作指令存储至本地建立的数据文件中,这样,当客户端接收到同步完成消息后,可以确定在发送同步请求消息至接收到同步完成消息的时间段内是否存储有新增的操作指令,如果存储有新增的操作指令,则确定存在第二操作指令集,并将该新增的操作指令作为第二操作指令集中的指令,如果未存储新增的操作指令,则确定不存在该第二操作指令集。
需要说明的是,由于客户端在接收到服务端发送的同步完成消息后,若确定存在第二操作指令集,则只需将第二操作指令集发送至服务端即可,无需发送目标表单数据,该第二操作指令集可以包括目标表单数据的表单标识,服务端根据该表单标识,即可确定该目标表单数据在表单数据库中对应的原始表单数据,从而对该表单同步数据执行该第二操作指令集中的操作指令,以更新表单同步数据,因此,即使客户端在接收到服务端发送的同步完成消息后将目标表单数据删除,也不影响后续根据第二操作指令集进行表单数据同步的过程。
采用上述方法,在进行表单数据同步时,只需要按照操作指令对原始表单数据进行更新即可,无需同步完整的目标表单数据,并且由于操作指令的执行时间较快,从而降低了表单数据同步的延迟,提高了表单数据同步的效率,另外,由于表单数据同步延迟的降低,从而降低了用户对表单数据同步过程的感知,进而减少了对用户正常操作的干扰,提高了用户体验。
图3为本公开实施例提供的一种同步表单数据的方法,如图3所示,该方法包括:
S301、客户端在确定与服务端的网络连接由异常转换为正常时,获取待同步的目标表单数据,以及该目标表单数据对应的第一操作指令集。
其中,关于目标表单数据和第一操作指令集的描述可以参考上述实施例中S201的描述,此处不再赘述。
S302、客户端向服务端发送同步请求消息,该同步请求消息包括该目标表单数据和该目标表单数据对应的第一操作指令集。
S303、服务端确定该目标表单数据在该表单数据库中是否存在对应的原始表单数据。
在本步骤中,可以根据目标表单数据的表单标识(如表单名称或者编号等信息)确定是否存在对应的原始表单数据,示例地,服务端在接收到目标表单数据后,可以从该目标变单数据中获取该目标变单数据的表单标识,并在表单数据库中确定是否存在与该表单标识相同的原始表单数据,在确定存在与该表单标识相同的原始表单数据,则确定在表单数据库中存在对应的原始表单数据,在确定不存在与该表单标识相同的原始表单数据,则确定在表单数据库中不存在对应的原始表单数据。
在确定存在对应的原始表单数据时,执行步骤S304至步骤S306;
在确定不存在对应的原始表单数据时,将该目标表单数据直接同步至该表单数据库中。
S304、服务端对该表单数据库中的原始表单数据执行该第一操作指令集中的操作指令得到表单同步数据。
在本步骤中,可以按照第一操作指令集中操作指令的生成顺序对该原始表单数据进行编辑,从而模拟目标表单数据的编辑过程,以便在表单数据库中将该原始表单通过该第一操作指令集更新为目标表单数据,从而完成变单数据的同步。
其中,每个操作指令包含有该操作指令的生成时间,从而根据该生成时间确定操作指令的生成顺序,例如,第一操作指令集包括修订指令、删除指令和填充指令,且修订指令对应的生成时间为T1、删除指令对应的生成时间为T2,填充指令对应的生成时间为T3,根据该生成时间确定操作指令的执行顺序为:先执行修订指令,再执行删除指令,最后执行填充指令,则在按照第一操作指令集中操作指令的生成顺序对该原始表单数据进行编辑时,可以对该原始表单数据先执行修订指令,再执行删除指令,最后执行填充指令,从而得到表单同步数据。
在本步骤中,考虑到在数据大并发场景下,服务器可能会接收到多个客户端的同步请求消息,并根据该同步请求消息通过一个主线程进行表单数据的同步,考虑到在数据大并发场景下,通过一个主线程进行表单数据同步可能会导致服务端数据处理的负担较重,降低表单数据同步的效率,为了解决该问题,在本公开另一实施例中,服务端在接收到客户端发送的同步请求指令后,可以为该客户端创建对应的用于进行表单数据同步的子线程,并在接收到客户端发送的目标表单数据和对应的第一操作指令集后,根据客户端标识确定该客户端对应的子线程,并通过该子线程进行表单数据的同步。
这样,服务端针对不同客户端的同步请求,通过各自对应的子线程分别进行表单数据同步,减少了主线程同步数据的处理负担,提高了数据的并发处理能力,从而有效利用了服务端的资源。
S305、服务端在得到该表单同步数据后,向客户端发送同步完成消息。
S306、客户端在接收到该同步完成消息后,确定是否存在新增的第二操作指令集。
其中,该第二操作指令集包括在该客户端发送该同步请求消息至该客户端接收到该同步完成消息之间的时间段内,该目标表单数据新增的操作指令。
这里,可以通过操作指令的生成时间确定是否存在第二操作指令集,在操作指令的生成时间位于该客户端发送该同步请求消息至该客户端接收到该同步完成消息之间的时间段内,则确定存在该第二操作指令集。
在确定存在新增的第二操作指令集,执行步骤S307至步骤S310;
在确定不存在新增的第二操作指令集,执行步骤S310。
S307、客户端将该第二操作指令集发送至该服务端。
S308、该服务端对该表单同步数据执行该第二操作指令集中的操作指令。
其中,通过第二操作指令集中的操作指令再次进行同步的过程可以参考上述对该表单数据库中的原始表单数据执行该第一操作指令集得到表单同步数据的过程,此处不再赘述。
S309、服务端再次向客户端发送同步完成消息。
S310、客户端向服务端发送同步响应消息。
这里,服务端在接收到该同步响应消息后,删除为该客户端创建的子线程。
采用上述方法,在进行表单数据同步时,只需要按照操作指令对原始表单数据进行更新即可,无需同步完整的目标表单数据,并且由于操作指令的执行时间较快,从而降低了表单数据同步的延迟,提高了表单数据同步的效率,另外,由于表单数据同步延迟的降低,从而降低了用户对表单数据同步过程的感知,进而减少了对用户正常操作的干扰,提高了用户体验。
需要说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本公开所必须的。
图4为本公开示例性实施例示出的一种同步表单数据的装置框图,应用于服务端,如图4所示,该装置包括:
请求接收模块401,用于接收客户端发送的同步请求消息,该同步请求消息包括待同步的目标表单数据和该目标表单数据对应的第一操作指令集;
第一判断模块402,用于确定该目标表单数据在表单数据库中是否存在对应的原始表单数据;
同步模块403,用于在该目标表单数据在该表单数据库中存在对应的原始表单数据时,对该表单数据库中的原始表单数据执行该第一操作指令集得到表单同步数据。
可选地,如图5所示,该装置还包括:
完成消息发送模块404,用于向该客户端发送同步完成消息;
指令接收模块405,用于在该客户端接收到该同步完成消息后,接收该客户端发送的第二操作指令集,该第二操作指令集包括在该客户端发送该同步请求消息至该客户端接收到该同步完成消息之间的时间段内,该目标表单数据新增的操作指令;
指令执行模块406,用于对该表单同步数据执行该第二操作指令集中的操作指令。
采用上述装置,在进行表单数据同步时,只需要按照操作指令对原始表单数据进行更新即可,无需同步完整的目标表单数据,并且由于操作指令的执行时间较快,从而降低了表单数据同步的延迟,提高了表单数据同步的效率,另外,由于表单数据同步延迟的降低,从而降低了用户对表单数据同步过程的感知,进而减少了对用户正常操作的干扰,提高了用户体验。
图6为本公开示例性实施例示出的一种同步表单数据的装置框图,应用于服务端,如图6所示,该装置包括:
表单数据获取模块601,用于获取待同步的目标表单数据,以及该目标表单数据对应的第一操作指令集;
请求发送模块602,用于向服务端发送同步请求消息,该同步请求消息包括该目标表单数据和该目标表单数据对应的第一操作指令集,以便该服务端在确定该目标表单数据在该表单数据库中存在对应的原始表单数据时,对该表单数据库中的原始表单数据执行该第一操作指令集中的指令得到表单同步数据。
可选地,如图7所示,该装置还包括:
完成消息接收模块603,用于在该服务端得到该表单同步数据后,接收该服务端发送的同步完成消息;
第三判断模块604,用于在接收到该同步完成消息后,确定该目标表单数据是否存在对应的第二操作指令集,该第二操作指令集包括在该客户端发送该同步请求消息至该客户端接收到该同步完成消息之间的时间段内,该目标表单数据新增的操作指令;
指令发送模块605,用于在确定存在对应的该第二操作指令集时,将该第二操作指令集发送至该服务端,以便该服务端对该表单同步数据执行该第二操作指令集中的操作指令。
采用上述装置,在进行表单数据同步时,只需要按照操作指令对原始表单数据进行更新即可,无需同步完整的目标表单数据,并且由于操作指令的执行时间较快,从而降低了表单数据同步的延迟,提高了表单数据同步的效率,另外,由于表单数据同步延迟的降低,从而降低了用户对表单数据同步过程的感知,进而减少了对用户正常操作的干扰,提高了用户体验。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种客户端800的框图。如图8所示,该客户端800可以是客户端,包括:处理器801,存储器802。该客户端800还可以包括多媒体组件803,输入/输出(I/O)接口804,以及通信组件805中的一者或多者。
其中,处理器801用于控制该客户端800的整体操作,以完成上述同步表单数据的方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该客户端800的操作,这些数据例如可以包括用于在该客户端800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该客户端800与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,客户端800可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述同步表单数据的方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的同步表单数据的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由客户端800的处理器801执行以完成上述同步表单数据的方法。
图9是根据一示例性实施例示出的一种服务端900的框图。参照图9,服务端900包括处理器922,其数量可以为一个或多个,以及存储器932,用于存储可由处理器922执行的计算机程序。存储器932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器922可以被配置为执行该计算机程序,以执行上述的同步表单数据的方法。
另外,服务端900还可以包括电源组件926和通信组件950,该电源组件926可以被配置为执行服务端900的电源管理,该通信组件950可以被配置为实现服务端900的通信,例如,有线或无线通信。此外,该服务端900还可以包括输入/输出(I/O)接口958。服务端900可以操作基于存储在存储器932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的同步表单数据的方法的步骤。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种同步表单数据的方法,其特征在于,应用于服务端,所述方法包括:
接收客户端发送的同步请求消息,所述同步请求消息包括待同步的目标表单数据和所述目标表单数据对应的第一操作指令集;
确定所述目标表单数据在表单数据库中是否存在对应的原始表单数据;
在所述目标表单数据在所述表单数据库中存在对应的原始表单数据时,对所述表单数据库中的原始表单数据执行所述第一操作指令集得到表单同步数据。
2.根据权利要求1所述的方法,其特征在于,在所述对所述表单数据库中的原始表单数据执行所述第一操作指令集得到表单同步数据后,所述方法还包括:
向所述客户端发送同步完成消息;
在所述客户端接收到所述同步完成消息后,接收所述客户端发送的第二操作指令集,所述第二操作指令集包括在所述客户端发送所述同步请求消息至所述客户端接收到所述同步完成消息之间的时间段内,所述目标表单数据新增的操作指令;
对所述表单同步数据执行所述第二操作指令集中的操作指令。
3.一种同步表单数据的方法,其特征在于,应用于客户端,所述方法包括:
获取待同步的目标表单数据,以及所述目标表单数据对应的第一操作指令集;
向服务端发送同步请求消息,所述同步请求消息包括所述目标表单数据和所述目标表单数据对应的第一操作指令集,以便所述服务端在确定所述目标表单数据在所述表单数据库中存在对应的原始表单数据时,对所述表单数据库中的原始表单数据执行所述第一操作指令集中的指令得到表单同步数据。
4.根据权利要求3所述的方法,其特征在于,在向所述服务端发送同步请求消息后,所述方法还包括:
在所述服务端得到所述表单同步数据后,接收所述服务端发送的同步完成消息;
在接收到所述同步完成消息后,确定所述目标表单数据是否存在对应的第二操作指令集,所述第二操作指令集包括在所述客户端发送所述同步请求消息至所述客户端接收到所述同步完成消息之间的时间段内,所述目标表单数据新增的操作指令;
在确定存在对应的所述第二操作指令集时,将所述第二操作指令集发送至所述服务端,以便所述服务端对所述表单同步数据执行所述第二操作指令集中的操作指令。
5.一种同步表单数据的装置,其特征在于,应用于服务端,包括:
请求接收模块,用于接收客户端发送的同步请求消息,所述同步请求消息包括待同步的目标表单数据和所述目标表单数据对应的第一操作指令集;
第一判断模块,用于确定所述目标表单数据在表单数据库中是否存在对应的原始表单数据;
同步模块,用于在所述目标表单数据在所述表单数据库中存在对应的原始表单数据时,对所述表单数据库中的原始表单数据执行所述第一操作指令集得到表单同步数据。
6.一种同步表单数据的装置,其特征在于,应用于客户端,包括:
表单数据获取模块,用于获取待同步的目标表单数据,以及所述目标表单数据对应的第一操作指令集;
请求发送模块,用于向服务端发送同步请求消息,所述同步请求消息包括所述目标表单数据和所述目标表单数据对应的第一操作指令集,以便所述服务端在确定所述目标表单数据在所述表单数据库中存在对应的原始表单数据时,对所述表单数据库中的原始表单数据执行所述第一操作指令集中的指令得到表单同步数据。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1或2所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求3或4所述方法的步骤。
9.一种服务端,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1或2所述方法的步骤。
10.一种客户端,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求3或4所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811613118.6A CN109828977A (zh) | 2018-12-27 | 2018-12-27 | 同步表单数据的方法、装置和存储介质及客户端、服务端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811613118.6A CN109828977A (zh) | 2018-12-27 | 2018-12-27 | 同步表单数据的方法、装置和存储介质及客户端、服务端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109828977A true CN109828977A (zh) | 2019-05-31 |
Family
ID=66860555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811613118.6A Pending CN109828977A (zh) | 2018-12-27 | 2018-12-27 | 同步表单数据的方法、装置和存储介质及客户端、服务端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109828977A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231408A (zh) * | 2020-10-22 | 2021-01-15 | 微医云(杭州)控股有限公司 | 数据集成方法及装置、电子设备、存储介质 |
WO2021212637A1 (zh) * | 2020-04-23 | 2021-10-28 | 平安国际智慧城市科技股份有限公司 | 表单数据离线缓存方法、装置、终端及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508835A (zh) * | 2011-09-22 | 2012-06-20 | 用友软件股份有限公司 | 基于日志管理包的增量数据实时同步装置和方法 |
CN105407134A (zh) * | 2015-10-20 | 2016-03-16 | 北京齐尔布莱特科技有限公司 | 一种表单提交设备、方法和移动终端 |
US9301269B1 (en) * | 2012-09-18 | 2016-03-29 | Marvell International Ltd. | Acquisition of periodic synchronization signals |
CN106657170A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
CN107291950A (zh) * | 2017-07-21 | 2017-10-24 | 东软集团股份有限公司 | 表单数据更新方法、装置及计算机设备 |
CN108200220A (zh) * | 2018-04-08 | 2018-06-22 | 武汉斗鱼网络科技有限公司 | 一种数据同步方法、服务器及存储介质 |
CN108595522A (zh) * | 2018-03-27 | 2018-09-28 | 北京明朝万达科技股份有限公司 | 一种增量同步方法、装置及系统 |
CN108696443A (zh) * | 2018-04-28 | 2018-10-23 | 北京五八信息技术有限公司 | 一种终端数据同步的方法、装置、设备及存储介质 |
CN109086382A (zh) * | 2018-07-25 | 2018-12-25 | 上海达梦数据库有限公司 | 一种数据同步方法、装置、设备及存储介质 |
-
2018
- 2018-12-27 CN CN201811613118.6A patent/CN109828977A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508835A (zh) * | 2011-09-22 | 2012-06-20 | 用友软件股份有限公司 | 基于日志管理包的增量数据实时同步装置和方法 |
US9301269B1 (en) * | 2012-09-18 | 2016-03-29 | Marvell International Ltd. | Acquisition of periodic synchronization signals |
CN105407134A (zh) * | 2015-10-20 | 2016-03-16 | 北京齐尔布莱特科技有限公司 | 一种表单提交设备、方法和移动终端 |
CN106657170A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
CN107291950A (zh) * | 2017-07-21 | 2017-10-24 | 东软集团股份有限公司 | 表单数据更新方法、装置及计算机设备 |
CN108595522A (zh) * | 2018-03-27 | 2018-09-28 | 北京明朝万达科技股份有限公司 | 一种增量同步方法、装置及系统 |
CN108200220A (zh) * | 2018-04-08 | 2018-06-22 | 武汉斗鱼网络科技有限公司 | 一种数据同步方法、服务器及存储介质 |
CN108696443A (zh) * | 2018-04-28 | 2018-10-23 | 北京五八信息技术有限公司 | 一种终端数据同步的方法、装置、设备及存储介质 |
CN109086382A (zh) * | 2018-07-25 | 2018-12-25 | 上海达梦数据库有限公司 | 一种数据同步方法、装置、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021212637A1 (zh) * | 2020-04-23 | 2021-10-28 | 平安国际智慧城市科技股份有限公司 | 表单数据离线缓存方法、装置、终端及存储介质 |
CN112231408A (zh) * | 2020-10-22 | 2021-01-15 | 微医云(杭州)控股有限公司 | 数据集成方法及装置、电子设备、存储介质 |
CN112231408B (zh) * | 2020-10-22 | 2023-05-23 | 微医云(杭州)控股有限公司 | 数据集成方法及装置、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108632068B (zh) | 一种网络切片模板生成、网络切片模板应用方法和装置 | |
CN104052562B (zh) | 允许回放装置对流传输内容执行同步回放的方法和设备 | |
EP3312730B1 (en) | Control terminal device, audio system, and audio system control method | |
CN103281237A (zh) | 一种群组处理方法和装置 | |
CN104750739A (zh) | 一种用于实现用户组之间共享文档的方法及装置 | |
CN106022108B (zh) | 一种同步管理方法及终端设备 | |
CN104427169A (zh) | 远程支持装置、电子装置及远程支持方法 | |
CN108462618A (zh) | 云服务器、及智能家居设备系统管理方法 | |
CN109828977A (zh) | 同步表单数据的方法、装置和存储介质及客户端、服务端 | |
CN112069154B (zh) | etcd分布式数据库自动运维方法及相关装置 | |
CN110162334A (zh) | 一种代码管理方法、装置、存储介质及计算机程序产品 | |
CN103546697A (zh) | 一种星形结构的对等控制播放方法 | |
CN105100283A (zh) | 一种终端之间实现播放列表同步的方法及装置 | |
CN108243396A (zh) | 一种时间同步处理方法及装置 | |
CN105681108A (zh) | 一种实现配置同步的方法及设备 | |
KR101619923B1 (ko) | 전력기기 연결 지원 게이트웨이 장치 | |
CN105337926A (zh) | 一种多端联动方法及相关设备与系统 | |
WO2016197897A1 (zh) | 融合通信交互方法,装置及系统 | |
CN113791821B (zh) | 基于虚幻引擎的动画处理方法、装置、介质与电子设备 | |
CN103733150B (zh) | 程序生成装置及可编程逻辑控制器 | |
US20200364065A1 (en) | User interface optimization for delayed data | |
CN109948082A (zh) | 直播信息处理方法及装置、电子设备、存储介质 | |
CN102325043B (zh) | 一种拓扑生成方法、装置和系统 | |
JP4144864B2 (ja) | 情報処理方法及び装置 | |
CN109842647A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190531 |