首页 >

后台怎么防止因网络延迟,用户连续点击导致后台重复执行一条数据,这样的状况发生? – 网络|

软件怎么设置卡密充值,苹果5s怎么关闭流量,网站导航用什么字体后台怎么防止因网络延迟,用户连续点击导致后台重复执行一条数据,这样的状况发生? - 网络|后台怎么防止因网络延迟,用户连续点击导致后台重复执行一条数据,这样的状况发生

怎么设计能防止重复提交呢?大家主要有以下操作:

①,前端:点击提交的按钮在点击过后置灰,在一段时间之内不让重复提交!

优点:最省事,提高并发能力的方式!

缺点:页面刷新等情况js失效,前端容易被篡改!



②,后端:

1,加锁:对提交的id进行加锁操作,在一定的时间范围内同样的id只能通过一次!

如果是分布式服务,需要借助redis等来加分布式锁,不然多个服务中锁不能互斥!

2,幂等:保证接口幂等,先查询,如果记录不存在再新增,如果存在就返回查询结果!

缺点:高并发环境没法保证幂等性!

③,数据库:如果是新增,可加唯一字段,在保存的时候如果唯一字段重复会抛出异常,使用insertignore语句,做判断!

如果是修改,可以使用乐观锁sql,保证版本version满足的时候再执行sql!如下例就是乐观锁机制:

updatetable_testsetname=name1,version=version+1whereid=id1andversion=2;

偶实际工作中就用到上面几种方法,如果还有更为合适有效的方法,请补充。。笔者一直在持续的分享JAVA开发技术,其中不乏百赞好文,有需要的朋友可以关注下。。


后台怎么防止因网络延迟,用户连续点击导致后台重复执行一条数据,这样的状况发生? - 网络|
  • javascript - 如何做这种模糊搜索
  • javascript - 如何做这种模糊搜索 | javascript - 如何做这种模糊搜索 ...

    后台怎么防止因网络延迟,用户连续点击导致后台重复执行一条数据,这样的状况发生? - 网络|
  • 浏览器怎么调试代码? - 网络|
  • 浏览器怎么调试代码? - 网络| | 浏览器怎么调试代码? - 网络| ...

    后台怎么防止因网络延迟,用户连续点击导致后台重复执行一条数据,这样的状况发生? - 网络|
  • 电脑检测卡各个显示的数字都代表什么意思? - 网络|
  • 电脑检测卡各个显示的数字都代表什么意思? - 网络| | 电脑检测卡各个显示的数字都代表什么意思? - 网络| ...