美文网首页
多次提交表单导致数据重复问题

多次提交表单导致数据重复问题

作者: YChristina | 来源:发表于2018-01-06 11:48 被阅读0次

系统在使用的过程中,经常会碰到以下情景:1.  由于网络延迟或者内存不足,点击一次按钮,页面没反应,结果点击第二次,造成数据重复。 2. 点击“提交”按钮,刷新页面,导致数据重复。 3. 点击“提交”按钮之后,点击浏览器后退,导致数据重复。

蒙版VS多浏览器:

针对情景1,如果我们点击操作完成,使按钮置灰或者显示蒙版,就可以避免重复点击误操作,也就避免了数据重复问题。看似没什么问题,但是仔细一想,如果我们不是在一个浏览器里呢,如果我打开了两个浏览器,在一个浏览器中点击“添加”按钮,在另一个浏览器里也点击了“添加”按钮,貌似蒙版就不管用了。(现实使用中是完全有可能出现类似的场景的,比如同时有两个人在操作添加任务)

原来是没有进行重复判断:

其实这个问题最根本的原因是程序没有进行重复判断,导致数据库重复写入。如果程序添加了重复判断逻辑,在一个浏览器页面中点击“添加”之后,数据成功写入数据库,在另一个浏览器中添加的时候,系统就会提示数据已存在,不能重复添加,这样就避免了数据重复写入。

如果同时提交呢:

我们再回过头来看一下我们的问题:系统提交了一次表单,然后再次提交的时候,程序会判断数据库是否已经存在该记录,如果存在写入数据就会失败,从而避免数据重复的错误。但是我们发现这个方法奏效有一个前提条件,两次表单提交是有先后顺序的。如果这样,假设我们同时提交两个表单,数据是不是还会重复呢?

并发问题:

这种问题就是我们常说的并发问题,并发问题的解决方案也有很多,比如:加锁排队处理等。测试时模拟并发也是需要借助工具的,因为手动操作无法达到并发的效果。并发的处理程度也视项目的需求而定,毕竟处理高并发的成本也是很高的。

致敬:

突然间觉得几百万人在同一时刻抢红包的场景,致敬微信团队!还有双11,12点钟声敲响的那一刻,致敬阿里巴巴团队!

相关文章

  • 多次提交表单导致数据重复问题

    系统在使用的过程中,经常会碰到以下情景:1. 由于网络延迟或者内存不足,点击一次按钮,页面没反应,结果点击第二次,...

  • 12、Struts2表单重复提交

    什么是表单重复提交表单的重复提交:若刷新表单页面, 再提交表单不算重复提交.在不刷新表单页面的前提下:多次点击提交...

  • struts令牌token

    一.使用场景 (1)网络延迟的情况下,进行多次提交. (2)表单提交后用户点击【刷新】按钮导致表单重复提交 (3)...

  • 【工作篇】接口幂等问题探究

    【工作篇】接口幂等问题探究 前言 最近遇到一些问题,表单重复提交,导致插入重复数据到数据库,这里查询一些通用的方案...

  • Struts2学习笔记 | 防止表单重复提交及自定义拦截器

    表单重复提交的概述 若刷新表单页面,再提交表单不算重复提交。 若是重定向,已经提交成功后再刷新不算重复提交。 以下...

  • 页面刷新导致表单重复提交的问题

    问题: 今天在我做的项目中发现了这么一个现象:添写完一个表单A的内容,点击下一步,进行表单A的保存并跳转到下个表单...

  • 防止表单重复提交的解决方案整理

    用户在操作表单Post数据时往往会出现表单数据重复提交的问题,尤其在Web开发中此类问题比较常见。刷新页面,后退操...

  • 表单

    表单基础 提交表单 Tips: 解决重复提交表单的问题的两个方法1)在第一次提交表单后就禁用提交按钮2)利用ons...

  • 常见的处理表单重复提交的方式

    表单重复提交是在web开发中经常遇到的问题,顾名思义就是指用户有意或无意对同一个表单提交了两次(多次),轻则引起系...

  • 002_JavaWeb避免重复提交

    JavaWeb避免重复提交 现象 利用Session防止表单重复提交 问题: 测试代码 更多信息:www.itco...

网友评论

      本文标题:多次提交表单导致数据重复问题

      本文链接:https://www.haomeiwen.com/subject/eeqynxtx.html