一种保护Web表单中数据的方法、装置、服务器和系统与流程

文档序号:15271322发布日期:2018-08-28 22:27阅读:135来源:国知局

本发明涉及计算机技术领域,特别涉及一种保护web表单中数据的方法、装置、服务器和系统。



背景技术:

现如今,在财务、金融、统计等诸多领域需要应用复杂而庞大的表单,实现数据输入、计算、存储等功能。随着上述需求的不断扩大,基于web网络的表单成为各种数据表单的主要数据输入、计算和存储的方式之一。

现有技术中,web表单主要是基于html和javascripts等技术实现,当用户在线进行web表单数据操作的时候,相应的数据暂存于相应的浏览器的内存之中,只有当用户提交数据的时候,这些数据才会被保存到服务器端的数据库中。但是,如果在用户在数据操作的过程中,一旦发生计算机宕机、浏览器程序崩溃或网络中断等状况后,因为数据只存在于浏览器的内存中,用户尚未及时提交数据至服务器,这些数据就会发生彻底丢失。或者,如果在用户数据操作过程中,如果服务器等网络设备发生故障,也会造成用户表单数据的丢失,这样就会给用户带来一定的损失,影响用户的使用体验。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的保护web表单中数据的方法和相应的装置、服务器和系统。

依据本发明的一个方面,提供了一种保护web表单中数据的方法,该方法包括:

响应于已登录的用户在web表单中完成一次数据操作,向服务器发送相应的操作结果数据;

当所述用户异常下线后重新登录时,从服务器获取恢复的所述web表单并进行展示。

可选地,响应于已登录的用户在web表单中完成一次数据操作,向服务器发送相应的操作结果数据包括:

当已登录的所述用户对web表单中的当前表格项进行数据操作后,开始对web表单中的其他表格项进行数据操作时,确定所述对当前表格项完成一次数据操作,向服务器发送当前表格项的操作结果数据。

可选地,该方法进一步包括:

向服务发送相应的操作结果数据后,接收服务器反馈的保存所述操作结果数据成功或失败的通知;

当接收到失败的通知时,在web表单页面上展示相应的操作结果数据保存失败的通知消息,并将web表单的操作焦点转移到所述操作结果数据对应的表格项。

根据本发明的另一方面,提供了一种保护web表单中数据的方法,该方法包括:

当用户登录时,生成相应web表单返回给客户端,并为所述web表单分配存储区;

接收客户端发送的对所述web表单的操作结果数据;

将对所述web表单的操作结果数据保存到与所述web表单对应的存储区中;

当所述用户异常下线后重新登录时,根据所述web表单对应的存储区中保存的操作结果数据恢复所述web表单并返回给客户端。

可选地,该方法进一步包括:在数据编辑列表中维护用户与所编辑web表单之间的对应关系;

当用户登录时,判断所述数据编辑列表中是否存在与该用户关联的对应关系;

如果存在,则确定该用户是异常下线后重新登录;

如果不存在,则确定该用户是正常登录。

可选地,该方法进一步包括:

当接收到客户端发送的表示对一个web表单的编辑结束的消息时,从所述数据编辑列表删除与该web表单的关联的对应关系,并回收为该web表单分配的存储区。

可选地,所述为所述web表单分配存储区包括:

为所述web表单分在内存中分配对象缓存;

或者,

为所述web表单在磁盘中分配对应的备份文件。

可选地,所述为所述web表单分配存储区包括:为所述web表单在内存中分配对象缓存,以及在磁盘中为所述对象缓存配置的备份文件;

所述将对所述web表单的操作结果数据保存到与所述web表单对应的存储区中包括:每收到一个对所述web表单的操作结果数据时,将该操作结果数据保存到所述web表单对应的对象缓存中;以及定期将所述web表单对应的对象缓存持久化到对应的备份文件中。

根据本发明的又一方面,提供了一种保护web表单中数据的装置,其特征在于,该装置包括:

数据上传单元,用于响应于已登录的用户在web表单中完成一次数据操作,向服务器发送相应的操作结果数据;

表单获取单元,用于当所述用户异常下线后重新登录时,从服务器获取恢复的所述web表单并进行展示。

可选地,所述数据上传单元,用于当已登录的所述用户对web表单中的当前表格项进行数据操作后,开始对web表单中的其他表格项进行数据操作时,确定所述对当前表格项完成一次数据操作,向服务器发送当前表格项的操作结果数据。

可选地,该装置进一步包括:

上传反馈单元,用于在所述数据上传单元向服务发送相应的操作结果数据后,接收服务器反馈的保存所述操作结果数据成功或失败的通知;当接收到失败的通知时,在web表单页面上展示相应的操作结果数据保存失败的通知消息,并将web表单的操作焦点转移到所述操作结果数据对应的表格项。

根据本发明的又一方面,提供了一种保护web表单中数据的服务器,其特征在于,该服务器包括:表单处理单元和存储单元;

所述表单处理单元,用于当用户登录时,生成相应web表单返回给客户端,并为所述web表单在存储单元中分配存储区;接收客户端发送的对所述web表单的操作结果数据;将对所述web表单的操作结果数据保存到与所述web表单对应的存储区中;当所述用户异常下线后重新登录时,根据所述web表单对应的存储区中保存的操作结果数据恢复所述web表单并返回给客户端。

可选地,所述表单处理单元,进一步用于在数据编辑列表中维护用户与所编辑web表单之间的对应关系;当用户登录时,判断所述数据编辑列表中是否存在与该用户关联的对应关系;如果存在,则确定该用户是异常下线后重新登录;如果不存在,则确定该用户是正常登录;

所述数据编辑列表保存在所述存储单元中。

可选地,所述表单处理单元,进一步用于当接收到客户端发送的表示对一个web表单的编辑结束的消息时,从所述数据编辑列表删除与该web表单的关联的对应关系,并回收为该web表单分配的存储区。

可选地,所述存储单元为内存或数据库;

所述表单处理单元,用于为所述web表单分在内存中分配对象缓存,或者,为所述web表单在数据库中分配对应的备份文件。

可选地,所述存储单元包括:内存和数据库;

所述表单处理单元,用于为所述web表单在内存中分配对象缓存,以及在数据库中为所述对象缓存配置的备份文件;用于在每收到一个对所述web表单的操作结果数据时,将该操作结果数据保存到所述web表单对应的对象缓存中,以及定期将所述web表单对应的对象缓存持久化到对应的备份文件中。

根据本发明的再一方面,提供了一种保护web表单中数据的系统,其特征在于,该系统包括:如前所述的保护web表单中数据的装置以及如前所述的保护web表单中的数据的服务器。

综上所述,本发明的技术方案是在用户进行web表单的数据操作的时候,“实时”向服务器发送操作结果数据,以便服务器端“实时”进行操作结果数据的存储;一旦出现程序崩溃、网络中断或者服务器宕机等状况导致用户异常下线后,当用户重新登录时,服务器会根据存储的操作结果数据进行用户异常下线前操作的web表单的恢复,防止数据丢失。可见,本发明采用“实时”进行用户在web表单中的操作结果数据的存储,并在用户出现异常下线时恢复web表单的方式,可以有效防止用户web表单数据的丢失,增强用户的使用体验。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明一个实施例提供的一种保护web表单中数据的方法的流程图;

图2为本发明另一个实施例提供的一种保护web表单中数据的方法的流程图;

图3为本发明一个实施例提供的一种保护web表单中数据的系统的总体架构示意图;

图4为本发明一个实施例提供的一种保护web表单中数据的装置的示意图;

图5为本发明另一个实施例提供的一种保护web表单中数据的装置的示意图;

图6为本发明一个实施例提供的一种保护web表单中数据的服务器的示意图;

图7为本发明一个实施例提供的一种保护web表单中数据的系统的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1为本发明一个实施例提供的一种保护web表单中数据的方法的流程图,从客户端侧说明本方案的实施过程。如图1所示,该方法包括:

步骤s110,响应于已登录的用户在web表单中完成一次数据操作,向服务器发送相应的操作结果数据。

在web表单系统中,当用户登录后,web表单的服务器会从web表单模型库选择相应的表单模型以及从数据库中选取相应的表单数据,进行web表单的生成,并在前端页面展现给用户,以便用户进行相应的操作。

为了防止用户的数据丢失,在用户进行web表单的操作时,将用户的操作结果数据“实时”发送给服务器以便进行存储,也就是说,只要用户在web表单中完成一次数据操作,就会向服务器发送相应的操作结果数据,使得服务器完成用户操作结果数据的“实时”存储。这里的完成一次数据操作可以是在一个表格项中输入数据,也可以是复制/粘贴一个区域的数据等针对web表单的操作。

步骤s120,当用户异常下线后重新登录时,从服务器获取恢复的web表单并进行展示。

当用户登录后进行web表单的操作时,一旦出现浏览器的程序崩溃、网络中断、服务器宕机等状况时,会造成用户的异常下线,以至于用户来不及将已操作的数据进行提交。因为在本实施例的方案中,用户每完成一次数据操作,就会在服务器中进行保存,所以即使用户被迫异常下线,未来得及提交操作数据,当状况消除,用户重新登录后,其异常下线前的操作结果数据都会从服务器的存储中获取并进行web表单的恢复,还原状况出现前web表单的状态,防止用户数据的丢失。

可见,本发明采用“实时”进行用户在web表单中的操作结果数据的存储,并在用户出现异常下线时恢复web表单的方式,可以有效防止用户web表单数据的丢失,增强用户的使用体验。

在本发明的一个实施例中,步骤s110中的响应于已登录的用户在web表单中完成一次数据操作,向服务器发送相应的操作结果数据包括:当已登录的用户对web表单中的当前表格项进行数据操作后,开始对web表单中的其他表格项进行数据操作时,确定对当前表格项完成一次数据操作,向服务器发送当前表格项的操作结果数据。

web表单通常是以表格的形式展现并供用户操作,用户在进行web表单操作的时候会进行相应的表格项的操作,所以,在本实施例中,用户在web表单中完成一次数据操作可以认为是,用户对web表单中的当前表格项进行数据操作后,开始对web表单中的其他表格项进行数据操作时,确定对当前表格项完成一次数据操作。例如,在web表单操作时,当前表格项为a1表格项,当用户在a1表格项中输入相应的数据“1”,操作焦点变到b1表格项后,那么就确定用户完成了当前a1表格项的操作,即完成了一次数据操作,这时就需要向服务器发送当前a1表格项的操作结果数据“1”。

因为需要将用户的每次操作结果数据向服务器发送,以便服务器进行“实时”存储,但是,不排除服务器的“实时”存储失败的情况,如果一旦出现存储失败,而用户无法获知,一旦出现用户异常下线后,该部分的数据还是会丢失。所以,为了防止上述情况的发生,在本发明的一个实施例中,图1所示的方法进一步包括:向服务发送相应的操作结果数据后,服务器会反馈存储结果的通知,然后接收服务器反馈的保存操作结果数据成功或失败的通知,根据接收到的通知进行相应的操作。

当接收到成功的通知时,为了不影响用户的正常操作,前端展示一般不进行任何处理,使得用户在无感知的情况下进行下一步的操作,增强用户体验。

当接收到失败的通知时,在web表单页面上展示相应的操作结果数据保存失败的通知消息,并将web表单的操作焦点转移到操作结果数据对应的表格项,以便用户重新进行一次操作,保证服务器可以进行相关的操作结果数据的存储。

需要说明的是,当服务器存储失败后,在web表单页面上展示相应的操作结果数据保存失败的通知消息,并且根据失败的原因,相应的操作结果数据保存失败的通知消息也会不同,处理方式也会不同。如果失败的原因是网络原因,则为保证用户的体验,会在用户无感知的情况下,客户端首先自动进行重新存储的操作,若客户端自动重新进行预设次数的操作后,服务器还是存储失败时,再在web表单页面上进行失败的通知消息的显示,这时失败的通知消息显示的是相应的操作结果数据存储失败,并提示用户进行下一步的操作。这里的预设次数不作具体限定,可以根据需求进行设定,例如,预设次数为3次,当客户端重新操作3次后,服务器还不能进行存储,则显示操作结果数据存储失败,并提示用户进行下一步的操作;如果存储失败是由于表格项中的数据精度与限值等原因时,则相应的操作结果数据保存失败的通知消息会直接显示为提示用户重新修改相应单元格的数据,待用户将数据重新修改后,可进行再次存储。

图2为本发明另一个实施例提供的一种保护web表单中数据的方法的流程图,从服务器侧说明本方案的实施过程。如图2所示,该方法包括:

步骤s210,当用户登录时,生成相应web表单返回给客户端,并为web表单分配存储区。

如上文说明,当用户登录后,服务器会从web表单模型库选择相应的表单模型以及从数据库中选取相应的表单数据,进行web表单的生成,并在客户端的前端页面展现给用户,以便用户进行相应的操作。同时,为了对用户每次完成的操作结果数据的存储,还需要对用户操作的当前web表单分配一个存储区,以便进行用户对该web表单的操作结果数据的存储。

步骤s220,接收客户端发送的对web表单的操作结果数据。

用户在web表单中完成一次数据操作,客户端都会向服务器发送相应的操作结果数据,所以服务器会接收客户端发送的对web表单的操作结果数据。

步骤s230,将对web表单的操作结果数据保存到与web表单对应的存储区中。

当服务器接收到web表单的操作结果数据后,将该数据保存到与web表单对应的存储区中。

虽然已经为当前的web表单分配了一个存储区,为了进行web表单的数据恢复时,可以进一步正确地将存储的操作结果数据和相应的表单相对应,在进行操作结果数据存储的时候,还可以将web表的相关信息进行一并存储。

步骤s240,当用户异常下线后重新登录时,根据web表单对应的存储区中保存的操作结果数据恢复web表单并返回给客户端。

当用户登录后进行web表单的操作时,一旦出现浏览器的程序崩溃、网络中断、服务器宕机等状况时,会造成用户的异常下线,以至于用户来不及将已操作的数据进行提交。那么,当用户重新登录后,服务器会根据web表单对应的存储区中保存的操作结果数据对异常状况出现前的web表单进行恢复并返回给客户端,防止用户的数据丢失。

可见,本发明采用“实时”进行用户在web表单中的操作结果数据的存储,并在用户出现异常下线时恢复web表单的方式,可以有效防止用户web表单数据的丢失,增强用户的使用体验。

当用户重新登录后,虽然服务器会根据web表单对应的存储区中保存的操作结果数据恢复web表单并返回给客户端。但是,也不排除用户并不是异常下线的可能,为了进一步确定用户是否是异常下线,在本发明的一个实施例中,图2所示的方法进一步包括:在数据编辑列表中维护用户与所编辑web表单之间的对应关系,当用户登录后开始对web表单进行编辑操作时,用户以及对正在编辑web表单的信息都会相对应的存在于数据编辑列表中。

当用户登录时,首先判断数据编辑列表中是否存在与该用户关联的对应关系;如果存在,说明用户下线时正在编辑相应的web表单,则确定该用户是异常下线后重新登录;如果不存在,则确定该用户是正常登录,并且将该用户以及其当前编辑的web表单之间的对应关系加入到数据编辑列表中。这里的正常登陆是指用户在上一次登陆时已经完成所有所需的操作,没有出现异常下线的状况。

需要说明的是,如果数据编辑列表中存在与该用户关联的对应关系,且用户选择该对应关系中的相应的web表单进行再次编辑的时候,如果该web表单正在被其他有权限的用户进行编辑,那么就拒绝该用户编辑该web表单。

当用户完成相应的web表单的操作后,会进行提交数据的操作,以便进行整个表单的存储,并且客户端会向服务器发送一个web表单的编辑结束的消息。为了保证用户是否为异常下线的判断的准确性,在本发明的一个实施例中,上述方法进一步包括:当接收到客户端发送的表示对一个web表单的编辑结束的消息时,从数据编辑列表删除与该web表单的关联的对应关系,这样就说明用户已经完成相应的操作,当用户再次登录时,就不会从数据编辑列表中查询到相应的信息,则该用户更准确地被确定为是正常登录;同时,该操作完成的web表单已经不会再出现数据丢失的可能,为了防止服务器存储的空间资源的浪费,回收服务器为该web表单分配的存储区。

在本发明的一个实施例中,步骤s210中的为web表单分配存储区包括:为web表单在内存中分配对象缓存;或者,为web表单在磁盘中分配对应的备份文件。当出现浏览器程序崩溃或网络中断等状况后,用户出现异常下线重新登录时,根据web表单对应的对象缓存或备份文件中保存的操作结果数据恢复web表单并返回给客户端。

因为在服务器运行过程中也会出现宕机的情况,如果用户对web表单的操作结果数据存储在其内存的对象缓存中,服务器一旦出现宕机的情况,其对象缓存中存储的操作结果数据就会丢失,并且造成用户的异常下线,当用户重新登录时,因为对象缓存中的操作结果数据已经丢失,无法恢复异常下线前的web表单的状态,用户的数据同样会丢失。所以,在本发明的一个实施例中,步骤s210中的为web表单分配存储区包括:为web表单在内存中分配对象缓存,以及在磁盘中为对象缓存配置的备份文件。

步骤s230中的将对web表单的操作结果数据保存到与web表单对应的存储区中包括:每收到一个对web表单的操作结果数据时,将该操作结果数据保存到web表单对应的对象缓存中;以及定期将web表单对应的对象缓存持久化到对应的备份文件中。这样,即使出现服务器宕机的状况,只要根据备份文件中的操作结果数据恢复web表单并返回给客户端即可,数据不会丢失或者只有未来得及持久化到对应的备份文件中的少量数据的丢失。

这里的定期将web表单对应的对象缓存持久化到对应的备份文件中可以是每隔预设时间长度(例如1h)后将web表单对应的对象缓存持久化到对应的备份文件中;也可以是当对象缓存的修改次数达到一定的数据量后将web表单对应的对象缓存持久化到对应的备份文件中,例如,达到了1000次数据操作后将web表单对应的对象缓存持久化到对应的备份文件中。所以,这里的定期不作具体的限定,可根据需求进行设定。

图3为本发明一个实施例提供的一种保护web表单中数据的系统的总体架构示意图。如图3所示,当用户对浏览器端的前端web表单进行操作时,服务器端的表单处理单元首先从表单模型中选择相应的模型以及从数据库中选择相应的表单数据,生成一个web表单后返回给浏览器端进行前端显示,当用户开始对该web表单进行编辑操作时,将用户与所编辑web表单之间的对应关系加入数据编辑列表中维护,并在服务器内存中为web表单分配相应的对象缓存,在磁盘中分配对应的备份文件。用户在web表单中每完成一次数据操作,浏览器端向服务器端发送相应的操作结果数据,服务器端的表单处理单元将操作结果数据保存在相应的对象缓存中,并定期将web表单对应的对象缓存持久化到对应的备份文件中。当用户异常下线后重新登录时,从对象缓存或者备份数据库中获取数据编辑列表中与该用户存在对应关系的web表单的相关操作结果数据进行web表单的恢复,有效防止数据的丢失。

所以,不管用户是正常登录还是异常下线后重新登录,在本发明的一个优选实施例中,则保护web表单中数据的具体流程包括:只要用户登录,首先判断数据编辑列表中是否存在与该用户关联的对应关系。如果不存在,则将该用户和其编辑的当前的web表单之间的对应关系加入到数据编辑列表中,并从数据库中读取相应的表单数据,生成相应的web表单返回给客户端进行显示,以供用户进行编辑操作。如果存在,则说明用户上次下线可能是异常下线,那么就继续判断服务器中相应web表单的对象缓存中是否存在相应web表单的操作结果数据,如果存在,则根据web表单对应的对象缓存中保存的操作结果数据恢复该web表单并返回给客户端,以供用户继续进行编辑操作;如果不存在,则查询服务器中相应web表单的备份文件中是否存在相应web表单的操作结果数据,如果存在则根据web表单对应的备份文件中保存的操作结果数据恢复该web表单并返回给客户端,以供用户继续进行编辑操作;如果不存在则可能是数据编辑列表中相应的对应关系未删除,或者用户的操作结果数据的“实时”存储失败,这时就从服务器的数据库中读取相应的表单数据生成一个相应的web表单返回给客户端进行显示,以供用户进行编辑操作。

图4为本发明一个实施例提供的一种保护web表单中数据的装置的示意图。如图4所示,该保护web表单中数据的装置400包括:

数据上传单元410,用于响应于已登录的用户在web表单中完成一次数据操作,向服务器发送相应的操作结果数据。

在web表单系统中,当用户登录后,web表单的服务器会从web表单模型库选择相应的表单模型以及从数据库中选取相应的表单数据,进行web表单的生成,并在前端页面展现给用户,以便用户进行相应的操作。

为了防止用户的数据丢失,在用户进行web表单的操作时,将用户的操作结果数据“实时”发送给服务器以便进行存储,也就是说,只要用户在web表单中完成一次数据操作,就会向服务器发送相应的操作结果数据,使得服务器完成用户操作结果数据的“实时”存储。这里的完成一次数据操作可以是在一个表格项中输入数据,也可以是复制/粘贴一个区域的数据等针对web表单的操作。

表单获取单元420,用于当用户异常下线后重新登录时,从服务器获取恢复的web表单并进行展示。

当用户登录后进行web表单的操作时,一旦出现浏览器的程序崩溃、网络中断、服务器宕机等状况时,会造成用户的异常下线,以至于用户来不及将已操作的数据进行提交。因为在本实施例的方案中,用户每完成一次数据操作,就会在服务器中进行保存,所以即使用户被迫异常下线,未来得及提交操作数据,当状况消除,用户重新登录后,其异常下线前的操作结果数据都会从服务器的存储中获取并进行web表单的恢复,还原状况出现前web表单的状态,防止用户数据的丢失。

可见,本装置采用“实时”向服务器发送用户在web表单中的操作结果数据的存储,并在用户出现异常下线后再重新登录时接收服务器发送的恢复的web表单的方式,可以有效防止用户web表单数据的丢失,增强用户的使用体验。

在本发明的一个实施例中,数据上传单元410,用于当已登录的用户对web表单中的当前表格项进行数据操作后,开始对web表单中的其他表格项进行数据操作时,确定对当前表格项完成一次数据操作,向服务器发送当前表格项的操作结果数据。

web表单通常是以表格的形式展现并供用户操作,用户在进行web表单操作的时候会进行相应的表格项的操作,所以,在本实施例中,用户在web表单中完成一次数据操作可以认为是,用户对web表单中的当前表格项进行数据操作后,开始对web表单中的其他表格项进行数据操作时,确定对当前表格项完成一次数据操作。例如,在web表单操作时,当前表格项为a1表格项,当用户在a1表格项中输入相应的数据“1”,操作焦点变到b1表格项后,那么就确定用户完成了当前a1表格项的操作,即完成了一次数据操作,这时就需要向服务器发送当前a1表格项的操作结果数据“1”。

图5为本发明另一个实施例提供的一种保护web表单中数据的装置的示意图。如图5所示,该保护web表单中数据的装置500包括:数据上传单元510、表单获取单元520和上传反馈单元530。其中,数据上传单元510、表单获取单元520与图4所示的数据上传单元410、表单获取单元420具有对应相同的功能,相同的部分在此不再赘述。

因为需要将用户的每次操作结果数据向服务器发送,以便服务器进行“实时”存储,但是,不排除服务器的“实时”存储失败的情况,如果一旦出现存储失败,而用户无法获知,一旦出现用户异常下线后,该部分的数据还是会丢失。所以,为了防止上述情况的发生,上传反馈单元530,用于在数据上传单元510向服务发送相应的操作结果数据后,服务器会反馈存储结果的通知,然后接收服务器反馈的保存操作结果数据成功或失败的通知。当接收到成功的通知时,为了不影响用户的正常操作,前端展示一般不进行任何处理,使得用户在无感知的情况下进行下一步的操作,增强用户体验。当接收到失败的通知时,在web表单页面上展示相应的操作结果数据保存失败的通知消息,并将web表单的操作焦点转移到操作结果数据对应的表格项,以便用户重新进行一次操作,保证服务器可以进行相关的操作结果数据的存储。

需要说明的是,当服务器存储失败后,在web表单页面上展示相应的操作结果数据保存失败的通知消息,并且根据失败的原因,相应的操作结果数据保存失败的通知消息也会不同,处理方式也会不同。如果失败的原因是网络原因,则为保证用户的体验,会在用户无感知的情况下,客户端的数据上传单元510首先自动进行重新存储的操作,若客户端数据上传单元510自动重新进行了预设次数的操作后,服务器还是存储失败时,再在web表单页面上进行失败的通知消息的显示,这时失败的通知消息显示的是相应的操作结果数据存储失败,并提示用户进行下一步的操作。这里的预设次数不作具体限定,可以根据需求进行设定,例如,预设次数为3次,当客户端重新操作3次后,服务器还不能进行存储,则显示操作结果数据存储失败,并提示用户进行下一步的操作;如果存储失败是由于表格项中的数据精度与限值等原因时,则相应的操作结果数据保存失败的通知消息会直接显示为提示用户重新修改相应单元格的数据,待用户将数据重新修改后,数据上传单元510可进行再次存储。

图6为本发明一个实施例提供的一种保护web表单中数据的服务器的示意图。如图6所示,该保护web表单中数据的服务器600包括:表单处理单元610和存储单元620。

表单处理单元610,用于当用户登录时,生成相应web表单返回给客户端,并为web表单在存储单元620中分配存储区;接收客户端发送的对web表单的操作结果数据;将对web表单的操作结果数据保存到与web表单对应的存储区中;当用户异常下线后重新登录时,根据web表单对应的存储区中保存的操作结果数据恢复web表单并返回给客户端。

如上文说明,当用户登录后,服务器600会从web表单模型库选择相应的表单模型以及从数据库中选取相应的表单数据,进行web表单的生成,并在客户端的前端页面展现给用户,以便用户进行相应的操作。同时,为了对用户每次完成的操作结果数据的存储,还需要对用户操作的当前web表单分配一个存储区,以便进行用户对该web表单的操作结果数据的存储。

用户在web表单中完成一次数据操作,客户端都会向服务器600发送相应的操作结果数据,所以服务器600会接收客户端发送的对web表单的操作结果数据。

当服务器600接收到web表单的操作结果数据后,将该数据保存到与web表单对应的存储区中。

虽然已经为当前的web表单分配了一个存储区,为了进行web表单的数据恢复时,可以进一步正确地将存储的操作结果数据和相应的表单相对应,在进行操作结果数据存储的时候,还可以将web表的相关信息进行一并存储。

当用户登录后进行web表单的操作时,一旦出现浏览器的程序崩溃、网络中断、服务器宕机等状况时,会造成用户的异常下线,以至于用户来不及将已操作的数据进行提交。那么,当用户重新登录后,服务器600会根据web表单对应的存储区中保存的操作结果数据对异常状况出现前的web表单进行恢复并返回给客户端,防止用户的数据丢失。

可见,本服务器采用“实时”进行用户在web表单中的操作结果数据的存储,并在用户出现异常下线时恢复web表单的方式,可以有效防止用户web表单数据的丢失,增强用户的使用体验。

当用户重新登录后,虽然服务器会根据web表单对应的存储区中保存的操作结果数据恢复web表单并返回给客户端。但是,也不排除用户并不是异常下线的可能,为了进一步确定用户是否是异常下线,在本发明的一个实施例中,表单处理单元610,进一步用于在数据编辑列表中维护用户与所编辑web表单之间的对应关系,当用户登录后开始对web表单进行编辑操作时,用户以及对正在编辑web表单的信息都会相对应的存在于数据编辑列表中。当用户登录时,首先判断数据编辑列表中是否存在与该用户关联的对应关系;如果存在,说明用户下线时正在编辑相应的web表单,则确定该用户是异常下线后重新登录;如果不存在,则确定该用户是正常登录,并且将该用户以及其当前编辑的web表单之间的对应关系加入到数据编辑列表中。这里的正常登陆是指用户在上一次登陆时已经完成所有所需的操作,没有出现异常下线的状况。

这里的数据编辑列表保存在存储单元620中。

需要说明的是,如果数据编辑列表中存在与该用户关联的对应关系,且用户选择该对应关系中的相应的web表单进行再次编辑的时候,如果该web表单正在被其他有权限的用户进行编辑,那么就拒绝该用户编辑该web表单。

当用户完成相应的web表单的操作后,会进行提交数据的操作,以便进行整个表单的存储,并且客户端会向服务器发送一个web表单的编辑结束的消息。为了保证用户是否为异常下线的判断的准确性,进一步地,表单处理单元610,进一步用于当接收到客户端发送的表示对一个web表单的编辑结束的消息时,从数据编辑列表删除与该web表单的关联的对应关系,这样就说明用户已经完成相应的操作,当用户再次登录时,就不会从数据编辑列表中查询到相应的信息,则该用户更准确地被确定为是正常登录;同时,该操作完成的web表单已经不会再出现数据丢失的可能,为了防止服务器存储的空间资源的浪费,回收服务器600为该web表单分配的存储区。

在本发明的一个实施例中,存储单元620为内存或数据库;表单处理单元610,用于为web表单在内存中分配对象缓存,或者,为web表单在数据库中分配对应的备份文件。当出现浏览器程序崩溃或网络中断等状况后,用户出现异常下线重新登录时,根据web表单对应的对象缓存或备份文件中保存的操作结果数据恢复web表单并返回给客户端。

因为在服务器运行过程中也会出现宕机的情况,如果用户对web表单的操作结果数据存储在其内存的对象缓存中,服务器一旦出现宕机的情况,其对象缓存中存储的操作结果数据就会丢失,并且造成用户的异常下线,当用户重新登录时,因为对象缓存中的操作结果数据已经丢失,无法恢复异常下线前的web表单的状态,用户的数据同样会丢失。所以,在本发明的一个实施例中,存储单元520包括:内存和数据库;表单处理单元510,用于为web表单分在内存中分配对象缓存,以及在数据库中为对象缓存配置的备份文件;用于在每收到一个对web表单的操作结果数据时,将该操作结果数据保存到web表单对应的对象缓存中,以及定期将web表单对应的对象缓存持久化到对应的备份文件中。这样,即使出现服务器宕机的状况,只要根据备份文件中的操作结果数据恢复web表单并返回给客户端即可,数据不会丢失或者只有未来得及持久化到对应的备份文件中的少量数据的丢失。

这里的定期将web表单对应的对象缓存持久化到对应的备份文件中可以是每隔预设时间长度(例如1h)后将web表单对应的对象缓存持久化到对应的备份文件中;也可以是当对象缓存的修改次数达到一定的数据量后将web表单对应的对象缓存持久化到对应的备份文件中,例如,达到了1000次数据操作后将web表单对应的对象缓存持久化到对应的备份文件中。所以,这里的定期不作具体的限定,可根据需求进行设定。

图7为本发明一个实施例提供的一种保护web表单中数据的系统的示意图。如图7所示,该保护web表单中数据的系统700包括:如图4或图5所示的保护web表单中数据的装置710以及如图6所示的保护web表单中的数据的服务器720。

在本发明的一个优选实施例中,该保护web表单中数据的系统的操作流程包括:不管用户是正常登录还是异常下线后重新登录,只要用户登录,首先判断数据编辑列表中是否存在与该用户关联的对应关系。如果不存在,则将该用户和其编辑的当前的web表单之间的对应关系加入到数据编辑列表中,并从数据库中读取相应的表单数据,生成相应的web表单返回给客户端进行显示,以供用户进行编辑操作。如果存在,则说明用户上次下线可能是异常下线,那么就继续判断服务器中相应web表单的对象缓存中是否存在相应web表单的操作结果数据,如果存在,则根据web表单对应的对象缓存中保存的操作结果数据恢复该web表单并返回给客户端,以供用户继续进行编辑操作;如果不存在,则查询服务器中相应web表单的备份文件中是否存在相应web表单的操作结果数据,如果存在则根据web表单对应的备份文件中保存的操作结果数据恢复该web表单并返回给客户端,以供用户继续进行编辑操作;如果不存在则可能是数据编辑列表中相应的对应关系未删除,或者用户的操作结果数据的“实时”存储失败,这时就从服务器的数据库中读取相应的表单数据生成一个相应的web表单返回给客户端进行显示,以供用户进行编辑操作。

需要说明的是,图7所示的系统的各实施例与图1和图2所示方法的各实施例对应相同,上文已有详细说明,在此不再赘述。

综上所述,本发明的技术方案是在用户进行web表单的数据操作的时候,“实时”向服务器发送操作结果数据,以便服务器端“实时”进行操作结果数据的存储;一旦出现程序崩溃、网络中断或者服务器宕机等状况导致用户异常下线后,当用户重新登录时,服务器会根据存储的操作结果数据进行用户异常下线前操作的web表单的恢复,防止数据丢失。可见,本发明采用“实时”进行用户在web表单中的操作结果数据的存储,并在用户出现异常下线时恢复web表单的方式,可以有效防止用户web表单数据的丢失,增强用户的使用体验。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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