TP5怎么使用Redis阻止web重复提交

  • Post author:
  • Post category:其他



TP5怎么使用Redis阻止web重复提交

在很多项目中遇到用户使劲点击按钮,会造成并发问题,同时会出现卡死问题【在处理复杂逻辑的方法中】。一般web端在异步请求后台时可以通过jQuery来阻止按钮重复提交,

jquery:

var isClick = true;

$(“#comfirmButton”).on(“click”, function () {

if (isClick) {


isClick = false;

//做你想做的

}

setTimeout(function () {


isClick = true;

}, 5000);//五秒内不能重复点击

});

那么TP5使用Redis怎么实现阻止重复web提交呢?请看下面代码

记得【引入Redis】:use think\cache\driver\Redis;

$post=$this->request->post();
$time=time();
$redis=new Redis();
$key = "progromName_" . md5(json_encode($post));// 转md5判断缓存名是否有一致的
if($redis->has($key)){
    //判断缓存名是否存在
    $redis_time=$redis->get($key);
    $redis_bet=time()-$redis_time;
    if($redis_bet <= 5000){
        return json(['code'=>400,'msg'=>'5秒之内只能提交一次!']);
    }
}
$redis->set($key, $time, 10);// 缓存时间(10秒)



版权声明:本文为weixin_37616043原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。