js限制用户频繁点击提交处理方法
2011-11-24 11:30
423 查看
如果页面上面有一个“提交”按钮,这个点击后会触发比较复杂的业务逻辑或者直接处理DB中的数据,这个时候我们通常不希望用户频繁点击提交或恶意点击,这就需要我们对这个有个时间限制了,比如5s后才能发表评论等等。
通过js我们可以比较轻松的实现这个需求:
<script type="text/javascript">
//存储变量信息
var VAR ={
repeatTemp:[]
}
var COM = {
repeat:function(s,t){//限制执行频率,默认为60秒 允许执行时返回false
t = t ? t * 1000 : 60000;//毫秒
var time = microtime();
if(!VAR.repeatTemp[s]){
VAR.repeatTemp[s] = time;
return false;//允许
}else{
var ts = t - (time - VAR.repeatTemp[s]);
ts = parseInt(ts/1000);
if(ts > 0){
alert("频率限制:还有 <b>"+ ts +"</b> 秒才可以再执行!");
return true;//禁止执行
}else{
VAR.repeatTemp[s] = time;//更新时间
return false;//允许
}
}
}
}
//刷新
function ref(){
var btn = COM.repeat('btn');
if(!btn){alert("可以执行了!");}else{return;}
}
//获取毫秒级时间戳
function microtime(){
return new Date().getTime();
}
</script>
js的实现逻辑就这样几句code,然后我们可以在页面中弄一个测试button
<input type="button" id="btn" onclick="ref();" value="提交"/>
如果频繁的去点击则会触发警告消息框。
通过js我们可以比较轻松的实现这个需求:
<script type="text/javascript">
//存储变量信息
var VAR ={
repeatTemp:[]
}
var COM = {
repeat:function(s,t){//限制执行频率,默认为60秒 允许执行时返回false
t = t ? t * 1000 : 60000;//毫秒
var time = microtime();
if(!VAR.repeatTemp[s]){
VAR.repeatTemp[s] = time;
return false;//允许
}else{
var ts = t - (time - VAR.repeatTemp[s]);
ts = parseInt(ts/1000);
if(ts > 0){
alert("频率限制:还有 <b>"+ ts +"</b> 秒才可以再执行!");
return true;//禁止执行
}else{
VAR.repeatTemp[s] = time;//更新时间
return false;//允许
}
}
}
}
//刷新
function ref(){
var btn = COM.repeat('btn');
if(!btn){alert("可以执行了!");}else{return;}
}
//获取毫秒级时间戳
function microtime(){
return new Date().getTime();
}
</script>
js的实现逻辑就这样几句code,然后我们可以在页面中弄一个测试button
<input type="button" id="btn" onclick="ref();" value="提交"/>
如果频繁的去点击则会触发警告消息框。
相关文章推荐
- 防止用户多次点击提交方法一:在js中的处理
- css的hover事件,如果点击之后通过js操作样式,hover事件就会失效的处理方法,外部css样式与js的DOM样式谁的权重高?
- 使用JS实现简单缓存功能,防止用户重复点击,重复AJAX提交
- 关于Asp.Net中避免用户连续多次点击按钮,重复提交表单的处理
- js实现点击图片自动提交action的简单方法
- 点击不同的按钮把同一个表单提交到不同的页面处理的方法
- js防止用户多次点击提交
- js实现点击图片自动提交action的简单方法
- js处理一个div里面多个点击事件时出现的事件冲突 重复的解决方法 事件冒泡
- js防止用户多次提交,可以做成公共方法供其他js调用
- 简单的js限制鼠标点击速度方法
- jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
- 关于避免按钮短时间内频繁点击或过快点击的处理方法
- js仿止用户重复点击提交按钮
- 如何防止在服务器处理完成之前用户多次点击提交按钮(转)
- css的hover事件,如果点击之后通过js操作样式,hover事件就会失效的处理方法,外部css样式与js的DOM样式谁的权重高?
- js实现表单多按钮提交action的处理方法
- js 处理频繁点击
- 防止在服务器处理完成之前用户多次点击提交按钮处理代码
- js中防止连续点击按钮导致多次重复提交数据的方法