如果当前请求尚未完成,则阻止用户发送新请求

Prevent users from sending new requests if the current request has not been completed

Laravel 中有没有办法在当前请求尚未完成的情况下阻止用户发出新请求?我想阻止用户提交多个请求,因为他们可能会觉得由于 Internet 连接速度慢而导致进程挂起。在一天结束时,每个请求都将创建单独的数据库事务并绕过验证检查,从而导致重复记录——如果事务是同时处理的。请注意,请求不是 ajax 请求,它们是表单提交。

@D. Petrov 在关于在 HTTP 请求未返回响应时禁用提交按钮的评论中有一个很好的建议。个人很喜欢

但是,如果您想要其他解决方案,则可能需要一个类似于 CSRF 令牌的令牌来标识每个唯一请求。比您只能在第一次服务器端接受令牌并在此之后使用相同令牌阻止所有后续请求。