logo好方法网

一种大数据量表单封装异步提交的方法


技术摘要:
本发明公开了一种大数据量表单封装异步提交的方法,在用户提交表单数据时,先对表单数据进行集合分装,然后对不可分装的数据进行前端压缩,这样就能减少必须一次性提交的数据量,减少服务器的压力;在后台接收数据时,再按照固定的集合方式将压缩后的数据解压,这样就  全部
背景技术:
web网页开发经常遇到大数据量表单提交的问题,在线提交大量的表格数据的常 用方法是使用post、get方法一次性同步提交,这样往往会产生数据脏读问题,拖累系统,且 运算时间较长,系统反应变慢,更可能导致上传过程中出现白页现象,导致系统无响应。
技术实现要素:
本发明的目的在于减轻大数据量表单提交过程中服务器的带宽压力,避免单次提 交表单数据量大导致功能运行计算的时间过长和实时并发问题的出现,同时可有效避免数 据提交过程中出现数据脏读的问题。为实现上述发明目的,本发明提供了一种大数据量表 单封装异步提交的方法,所述方法包括以下步骤: S1:对待提交的表单数据进行集合封装,得到n个数据集合; S2:封装完毕后,将所有数据集合的封装键值对数据集合放入待提交表单中; S3:按照步骤S2中待提交表单数据的大小,将符合数值要求的数据集合的封装键 值对数据集合异步提交至服务器; S4:服务器接收步骤S3提交的封装键值对数据集合,并在第一次提交时,创建计时 器,服务器通过获取计时器时间,判断数据是否接收完毕,并返回结果等待或验证数据完整 性并解压压缩数据集合。 优选的,其中步骤S1所述的集合封装包括如下步骤: S1.1:对待提交的表单数据分类进行循环封装,得到数组集合; S1.2:循环完毕后,服务器调取数据库中与数组集合同类型的对比数据集合,放入 以该表单数据类型命名的数组集合的封装键值对数据集合中。 优选的,其中步骤S1.1所述的循环封装包括如下步骤: S1.1.1:以某一特定数量为一组的单位数量,将待提交的表单数据封装分为n组并 逐一进行封装; S1.1.2:所有待提交的表单数据全部封装完毕,得到n个数据集合。 优选的,其中当待提交表单数据大于1MB且小于等于2MB时,异步提交进一步包括 如下步骤: S3.1:将数组集合的封装键值对数据集合循环地先行提交至服务器; S3.2:待数组集合的封装键值对数据集合提交完毕后,再将对比数据集合键值对 数据集合提交至服务器。 优选的,其中当待提交表单数据大于2MB时,异步提交还包括: S3.3:判断数组集合的封装键值对压缩数据集合的大小; 3 CN 111610970 A 说 明 书 2/4 页 S3.4:将小于等于2MB的数组集合的封装键值对压缩数据集合提交至服务器;将大 于2MB的实操题型作答答案键值对压缩数据集合再次集合封装并压缩,异步提交至服务器。 优选的,其中验证数据完整性并解压压缩数据集合包括如下步骤: S4.1:服务器判断提交的压缩数据是否完整,压缩数据不完整则退出提交步骤,若 压缩数据完整,则对提交的压缩数据进行解压,解压失败则推出提交步骤,重新执行步骤 S1,解压成功,则生成新的数据集合; S4 .2:为新的数据集合创建新的处理流程,进行循环加锁,进行下一步的数据处 理。 优选的,其中键值对数据类型包括但不限于json键值对数据类型。 优选的,其中压缩方法包括但不限于pako.js的gzip方法。 有益效果 实施本发明,具有如下有益效果: 本发明在系统用户提交表单数据时,先对表单数据进行集合分装,然后对不可分 装的数据进行前端压缩,不仅减少了单次提交的数据量,而且大大减轻了服务器的带宽压 力;在后台接收数据时,再按照固定的集合方式将压缩后的数据解压,避过服务器的压力, 最后将每个功能处理的过程加上线程同步的方式解决了大数据量表单提交情况下容易产 生的数据错乱,同时可有效避免数据提交过程中出现数据脏读的问题,缓解了数据上传过 程中出现白页现象,导致系统无响应的问题。 附图说明 图1为本发明的数据处理流程示意图; 图2为本发明实施例的流程示意图;
分享到:
收藏