一、有效地在web客户端采用一定机制去防止重复点击提交,将大大减轻服务器端压力。

1> 定义标志位:
 点击触发请求后,标志位为false量;请求(或者包括请求后具体的业务流程处理)后,标志位为true量。通过标志位来判断用户点击是否具备应有的响应。

2> 卸载及重载绑定事件:
点击触发请求后,卸载点击事件;请求(或者包括请求后具体的业务流程处理)后,重新载入绑定事件。

二、请求频度
相信大家碰到过这样的业务,我们允许它重复点击(或者其他用户事件),但是不允许在一定的时间内超过次数XX次。这从用户友好体验及服务器承受压力选取了一个折中方案。
最合适不过的例子,莫过于关键字搜索匹配了。

var timer = null;
$(input).keyup(function () {var value = $(this).val();clearTimeout(timer);//如果键盘敲击速度太快,小于100毫秒的话就不会向后台发请求,但是最后总会进行一次请求的。timer = setTimeout(function () {//触发请求$.ajax({url: 'typeahead.do',type: 'get',data: value,success: function () {//显示匹配结果//......}});}, 100);
});

三、总结

从宏观意义上来讲,我们需要对每一个按钮去做”防止重复点击提交“,面对这种情况,我们便可以采用一定策略来对其进行封装实现(如定义通用按钮类绑定事件)。

从具体情况上来讲,我们并不需要对每一个按钮都去做”防止重复点击提交“,仅仅需要对某些可能具有复杂后台业务逻辑、或者文件上传、或者调用其他非本工程接口导致网络延迟等等情况需要去做”防止重复点击提交“。与此同时,我们必须要给予用户友好提示(如文本提示、渲染loading条、显示文件上传进度条等等)。两者需要一起来看、一起来做。当然,我们可以单独提取状态显示这个实现逻辑。代码如下——

//全站ajax加载提示
(function ($) {var str = '<div class="ajax-status" style="display: none;">' +'<div class="ajax"><img src="img/loading.gif" width="20height="20" />数据加载中...</div>' +'</div>';var dom = $(str).prependTo('body');$(document).ajaxStart(function () {dom.stop(true, false).queue(function () {$(this).show().dequeue();});})$(document).ajaxStop(function () {dom.queue(function () {$(this).hide().dequeue();});});
})(jQuery);

浅谈一下如何避免用户多次点击造成的多次请求相关推荐

  1. java如何避免恶意连续点击_浅谈一下如何避免用户多次点击造成的多次请求

    浅谈一下如何避免用户多次点击造成的多次请求 一.有效地在web客户端采用一定机制去防止重复点击提交,将大大减轻服务器端压力. 1> 定义标志位: 点击触发请求后,标志位为false量:请求(或者 ...

  2. 多线程之旅之四——浅谈内存模型和用户态同步机制

     用户态下有两种同步结构的 volatile construct: 在简单数据类型上原子性的读或者写操作   interlocked construct:在简单数据类型上原子性的读和写操作 (在这里还 ...

  3. 浅谈如何app增加用户粘性

    前言: app开发主要目的就是需求,需求就是让别人用,让别人使用我的app能够为用户提供相应的一些能够完成他所想要的功能.有需要才会有存在的必要,要是没有需求,那么也就没有了存在的必要了. 研究背景: ...

  4. 浅谈社交网络中的用户心理

    为什么在国内外的App排行榜中,占大多数的一直都是社交网络类的应用,因为社交网络是用户沟通和交流的真实反映,尽管社交网络平台存在着这样那样的虚假信息,但是从整体来看,社交网络能够反映大多数人的沟通交流 ...

  5. 浅谈微博精准推荐——用户行为挖掘与相似用户挖掘

    引言:在推荐系统中,通过对用户数据的挖掘,抽象出用户感兴趣的"商品",以微博的博文推荐为例,"商品"表现为用户的博文,在博文精准推荐中,其核心问题是在给定的环境 ...

  6. 计算机文化宣传普及知识展,浅谈计算机文化

    浅谈计算机文化 来源:用户上传 作者: [摘要]以计算机为核心的现代信息网络技术使人类社会开始从工业社会进人信息社会,引起了整个社会的产业结构及社会结构深刻的变革,从而形成了一种独特的.具有丰富社会内 ...

  7. 浅谈PCI Express体系结构(二)

    PCI总线的信号定义 PCI总线是一条共享总线,在一条PCI总线上可以挂接多个PCI设备.这些PCI设备通过一系列信号与PCI总线相连,这些信号由地址/数据信号.控制信号.仲裁信号.中断信号等多种信号 ...

  8. 浅谈用Python计算文本BLEU分数

    在本教程中,你探索了BLEU评分,根据在机器翻译和其他语言生成任务中的参考文本对候选文本进行评估和评分. 具体来说,你学到了: BLEU评分的简单入门介绍,并直观地感受到到底是什么正在被计算. 如何使 ...

  9. 浅谈PCI Express体系结构(三)

    PCI总线的存储器读写总线事务 总线的基本任务是实现数据传送,将一组数据从一个设备传送到另一个设备,当然总线也可以将一个设备的数据广播到多个设备.在处理器系统中,这些数据传送都要依赖一定的规则,PCI ...

最新文章

  1. postman api
  2. Spring Cloud Alibaba - 12 使用Nacos的元数据实现金丝雀发布功能
  3. android:parentActivityName
  4. 大数据就业前景分析的太到位了【附:1T视频资料】
  5. 计算机工作对身体有害吗,在电脑前长时间工作会对身体有害处吗?
  6. FluorineFx:远程共享对象(Remote SharedObjects)
  7. Dev-cpp调试教程
  8. 小程序 发送模板消息的功能实现
  9. JAVA 抽象类与接口
  10. 【物联网毕设基础】单片机:NEC 协议红外遥控器
  11. C++常用头文件汇总
  12. 考研结束,一起聊聊考研中的故事
  13. C语言入门:华氏温度转换为摄氏温度
  14. 第十四届蓝桥杯校内模拟赛第二期-Java个人题解(仅供参考)
  15. C++ 将当前系统时间转换成标准格式的时间和时间戳
  16. 三星 i9500/Galaxy S4开发者选项开启方式(打开USB调试的方法)
  17. Anubis的xtr文件简要说明
  18. 微信小程序实现展示/收起切换图标,上下效果(超详细)
  19. 中科大计算机考研英语,中科大计算机考研复试英语.doc
  20. 关于vray材质球,的默认设置!

热门文章

  1. Python爬虫入门-python之爬取pexels高清图片
  2. 【Java】数据类型和运算符
  3. ​医用呼吸机Everspin MRAM应用笔记
  4. 双馈风力发电系统仿真,背靠背双pwm变换器控制系统,具备最大功率追踪功能
  5. 定个小目标,开始更新博客,再唠嗑一下现在的一些心路
  6. jsp21127无人超市采购购物系统
  7. 训练记录(Wiki备份)
  8. BLE 传输速率/数据吞吐量(Data Throughput)
  9. Django计算机毕业设计大学生项目众筹系统(程序+LW)Python
  10. java mcu 视频会议_视频会议终端和MCU两者有什么区别