关于js中连续click时不执行访问后台请求,当点击停止2s之后,立即发起访问后台的请求的解决方案
2017-10-28 10:36
603 查看
防止用户重复向后台发起大量请求,下面我们通过一个例子实现:
当连续点击修改温度的值时,页面上显示的值每次都根据具体情况做出修改,但是将这个值保存的数据库的操作则是在点击操作结束后2s发起的(其中若连续多次点击改变温度的值,则只是在用户最后一次修改完成后2s执行保存到数据库的操作)
点击按钮如图:
处理流程图:
算法分析
*按钮的动作主要负责:1.当没有计时时开启计时2.当已经存在计时是将计时归0,并重新开始计时
*计时器方法的主要负责:保证计时器运行,当计时达到2时,执行访问数据库的业务方法并关闭计时器。
代码实现:
代码实现中参数flag的作用:当是点击事件的方法调用该计时器时,flag=”true”,当定时器自己递归调用自己的时候,flag=”false”;
当连续点击修改温度的值时,页面上显示的值每次都根据具体情况做出修改,但是将这个值保存的数据库的操作则是在点击操作结束后2s发起的(其中若连续多次点击改变温度的值,则只是在用户最后一次修改完成后2s执行保存到数据库的操作)
点击按钮如图:
处理流程图:
算法分析
*按钮的动作主要负责:1.当没有计时时开启计时2.当已经存在计时是将计时归0,并重新开始计时
*计时器方法的主要负责:保证计时器运行,当计时达到2时,执行访问数据库的业务方法并关闭计时器。
代码实现:
var baseTime=0; var timer="";//定时器标识 function timedCount(flag){ if(flag=="true"){ //按钮点击事件点击执行的代码块 baseTime=0; clearInterval(timer);//清除原有的计时器 timer=setTimeout("timedCount('false')",1000);//参数位false表示计时器一直执行 }else if(flag=="false"){//计时器自己调用的代码块负责一直让baseTime累加 baseTime=baseTime+1; timer=setTimeout("timedCount('false')",1000); if(baseTime>3){ excuChangeTemp(object);//执行业务方法 clearInterval(timer); } } }
代码实现中参数flag的作用:当是点击事件的方法调用该计时器时,flag=”true”,当定时器自己递归调用自己的时候,flag=”false”;
相关文章推荐
- js方法内Ajax请求数据判断,验证无效(OnClientClick="return Method();"),还是直接执行后台代码
- java使用线程请求访问每次间隔10分钟连续5次,之后停止请求
- java使用线程请求访问每次间隔10分钟连续5次,之后停止请求
- js的alert抛出之后怎么让页面停止执行?
- 关于ASP.NET中由于无法创建应用程序域,因此未能执行请求解决方案
- 关于ASP.NET中由于无法创建应用程序域,因此未能执行请求解决方案
- 记一下angular.js 1.x 关于post提交后台无法接受数据解决方案
- EasyUI 关于 panel,window,dialog 通过href加载页面,页面中引用的js不执行的解决方案
- 关于”要执行请求的操作,WordPress需要访问您网页服务器的权限”
- 关于.net验证控件检错之后继续执行后台代码的错误分析 推荐
- 关于JS的立即执行函数的一处使用场景
- 关于js中立即执行的匿名函数写法
- 关于图片按钮执行js跳转页面时刷新页面的解决方案
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- IOS下Iphone手机访问移动端页面,on预绑定的click事件不执行,解决方案
- java使用线程请求訪问每次间隔10分钟连续5次,之后停止请求
- 关于js处理ajax请求返回json数据时出现页面缓存的解决方案(适用于showdialog)
- 技术总结:关于JS执行前台和后台顺序的.另外一个是前后和后台变量的交互的.
- 关于在里的按钮点击之后不执行OnItemCommand事件,欢迎讨论
- 关于jquery中 的点击事件,每点一次执行的效果就叠加一次,click是添加点击事件的意思