控制点击频率

问题描述:给一个按钮绑定点击事件,发ajax请求,向服务器提交数据和从服务器获取数据。用户在较短时间内多次点击按钮,请求混乱,服务器来不及处理。
预期结果:我们希望第1次请求结束后,才可以发第2次请求。
解决方案
1、利用jQuery中的ajax方法

beforeSend: function() {
  $(‘#submit_btn‘).off(‘click‘);
},
complete: function() {
  $(‘#submit_btn‘).on(‘click‘);
}

2、设置一个提交标志

//初始状态,可以提交;
var flagSubmit = true;

//提交期间,如果flagSubmit为false,就禁止提交;
if(!flagSubmit) return false;
//提交期间,锁住flagSubmit;
flagSubmit = false;

//提交成功后,释放flagSubmit。
flagSubmit = true;

3、借助高阶函数debounce去抖
核心思想是,设置定时器,延迟期间,锁定提交行为;延迟结束后,可以继续点击提交。

时间: 2024-08-24 23:27:09

控制点击频率的相关文章

jQuery事件控制点击内容下拉

1.设计实例 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C

控制按钮的点击频率

public static class Utils{ private static final int MIN_CLICK_DELAY_TIME = 100; private static long lastClickTime; public static boolean isFastClick(){ boolean flag = false; long curClickTime = System.currentTimeMillis(); if ((curClickTime - lastClic

javascript脚本实现浏览器自动点击(阿里员工秒杀月饼)

原文地址https://blog.csdn.net/ani521smile/article/details/52575063 秒杀活动页面 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title> Micomo </title> </h

js 秒杀

秒杀活动页面 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title> Micomo </title> </head> <body> <div> <p> 活动倒计时<strong id=&

ios 控制button点击事件的触发频率

在项目中常常会遇到这样的问题: button点击就会触发相应的点击事件,比如说是向向服务器发送网络请求或者弹出弹框. 但如果用户点击频率很快的话,那就会不停的触发点击事件,从而使UI错乱. 对于这种问题我的解决方案是:设置布尔值. (1)对于与服务器有交互的点击事件:点击的时候判断bool值:在发送请求前设置一次:服务器得到应答后改变bool值即可. (2)对于无服务器交互点击事件:点击的时候判断:执行弹框前设置:弹框完成后延时0.25秒在设置. 直接上代码 .... @property (no

juqery 点击显示点击隐藏,slideDown slideUp slideToggle

<!doctype html> <html> <head> <meta charset="utf-8"> <title>webrx-title</title> <script src="js/jquery-1.11.2.min.js"></script> <style> #ad{ width:200px; height:300px; background-co

Appium 相关学习(三) 使用webdriver截图以及app点击事件

1.使用webdriver执行截图,也可以在此方法中自定义文件位置,需要通过操作File格式移动 //使用driver工厂创建driver AppiumDriver driver=DriverFactory.getDriver(); //执行截图,生成file文件,文件默认保存位置为系统当前账户的TEMP文件夹下,格式为png File file=driver.getScreenshotAs(OutputType.FILE); 2.app的点击事件,点击分为  直接点击  和   滑动 点击事件

Android零基础入门第66节:RecyclerView点击事件处理

前面两期学习了RecyclerView的简单使用,并为其item添加了分割线.在实际运用中,无论是List还是Grid效果,基本都会伴随着一些点击操作,那么本期就来一起学习RecyclerView的点击事件. 在介绍RecyclerView开篇的时候简单提到过,要实现一些控制点击.长压事件需要自己完成,不像之前学的ListView有自带ClickListener和LongClickListener,但其实更加灵活多样,可以对点击方式按照自己的方式来实现. 仍然在上一期的代码基础来进行修改,既然R

从源码剖析PopupWindow 兼容Android 6.0以上版本点击外部不消失

PopupWindow可以说是Google坑最多的一个控件,使用PopupWindow的时候没有遇到几个坑你都不好意思说你用过它,说一个可能大多数人都遇到过的一个坑:那就是我们想触摸PopupWindow 以外区域就隐藏PopupWindow,理论上我们只需要调用 setOutsideTouchable(ture)设置为ture就可以了,但是实际上只设置这个属性是不行的,必须设置背景,也就是说要和setBackgroundDrawable(Drawable background)同时使用才有效,