怎样才能防止重复发送Ajax请求

更新时间:02-02 教程 由 别想 分享

怎样才能防止重复发送Ajax请求?

你的做法是在客户端进行限制。

客户端方案

在同一个页面,也就是说用户没有离开某个页面,那么使用disabled的方式也是无可厚非的,并没有什么粗暴之说。

为什么会觉得这种方式不好呢?

问题分析

按照常理来说,同一个用户在某一段时间内不应该对某个请求发起多次请求。

不过很难界定多短算一段时间之内,特别是考虑到网络延迟等因素。

也很难界定是否是用户自己的操作。

所以只要是在同一个界面,我们都认为用户不应该多次操作。

使按钮不可点击是一种方式,这种方式也很好用,假如用户都知道如何让按钮不变灰,那你能做的只是限制用户所有操作。

表单直接提交方式

这是我非常不建议的方案,假如采用提交之后务必要跳转到另外一个页面,否则用户刷新当前页面会导致重复提交。

我认为你使用Ajax的方案就很棒,使按钮不可点击的方法也很不错,比起表单直接提交方案强百倍。

把请求结果缓存下来

如果用户在某一段时间之内请求的是同一个URL,那么可以把之前缓存在客户端的数据直接取出来展示。

如果是当前页面就告诉他请过多久再请求。

服务端限制

服务端最限制很麻烦,因为用户真的是有无聊者的,他们会不停刷新界面,不停点击,能怎么办?

像阿里巴巴那样,当一段时间之内请求超过一定次数之后,就验证用户的合法性,比如输入验证码。

记住这是限制机器请求,不是限制正常用户的无聊之举。

服务端缓存

客户端可以缓存,服务端自然也可以缓存。

用户请求过的数据就缓存起来,下次请求直接返回。

评价

你会发现你觉得暴力的方式才是这个世界上最完美的方式,假如你想采用其他方式,会发现需要大量工作,建议最好是在服务器集中式处理,这样可以一劳永逸。

声明:关于《怎样才能防止重复发送Ajax请求》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2179163.html