如何避免网络重复请求

以上就是本地锁的方式进行的幂等提交 使用了Content-MD5 进行加密 只要参数不变,参数加密 密值不变,key存在就阻止提交当然也可以使用 一些其他签名校验 在某一次提交时先 生成固定签名 提交到后端 根据后端解析统一的签名作为 每次提交的验证token 去缓存中处理即可.8)借助分布式redis锁 (参考其他)在 pom.xml 中添加上

主要实现方式:熟悉 Redis 的朋伖都知道它是线程安全的我们利用它的特性可以很轻松的实现一个分布式锁,如 opsForValue().setIfAbsent(key,value)它的作用就是如果缓存中没有当前 Key 则进行缓存同时返回 true 反之亦然;当缓存后给 key 在设置个过期时间防止因为系统崩溃而导致锁迟迟不释放形成死锁;那么我们是不是可以这样认为当返回 true 我们认為它获取到锁了,在锁未释放的时候我们进行异常的抛出…

    * 如果要求比较高可以通过注入的方式分配

首先谢谢大家对这个问题的讨论为了后来的童鞋方便浏览,我结合大家的论文重新补充编辑此贴,为标蓝色加粗字体部分

今天面试时考官问了一道题,以下是大致嘚回忆:

问题大意: 如果点击一个按钮发送异步请求如何防止短时间内用户重复提交,从而造成数据覆盖等问题:

11月20日更新:感谢面试官虽然面试挂了,还能有机会再次沟通得知 abort()方法其实是当时面试官心里期待的回答,那个滚动条优化面试官期待的是 throttle函数,再次感謝

当然不知道面试官希望我能回答出来的更好方法是什么,所以请有看到的朋友能不吝赐教谢谢。

我要回帖

 

随机推荐