背景:
点击保存按钮的时候有的时候会因为网络原因等造成前端页面渲染比较慢,保存按钮可以连续点击两次,但是后台并没有做任何的限制措施,后台使用的是php语言,这个时候我们并不能有效的阻止这次连续的点击,因为我们mysql判断的是有没有已经存在的数据,但是并发的时候我们数据库还没有写入成功,当前请求就立马进来了,这个时候检测就变成了多余的读操作,因为并没有写入成功,所以我们就读取不到数据,这个时候就又会进入写操作,
正常的流程逻辑:
并发下的逻辑:
前端解决思路:
从源头解决这个问题,保存按钮在每次点击完成的时候让他成不可用状态,disabled状态变成true,在请求成功或者失败之后重新把disabled修改成false。
在请求之前判断disabled是否是false的状态,如果不是,则终止运行