javascript 防止重复提交
来源:互联网 发布:spycall软件下载 编辑:程序博客网 时间:2024/06/10 14:04
在项目里面有时候会遇到防止发送重复请求或防止重复调用某一function的问题,可以通过类似表单令牌的方式来实现。
为了兼容部分浏览器,我们先使用一个方法来打印日志。
function log(txt){
if(window.console){
console.info(txt);
}else{
alert(txt);
}
}
例如,我们现在有一个打招呼的函数 sayhello,我们希望防止其重复调用的问题。
function sayHello(name){ log("Hello,"+name);}
现在我们对其做一点处理,避免我们打招呼的时候喋喋不休,说同样的话。
/** * 防止请求的重复提交
* 使用 Proxy.getProxy(func)对函数func进行,返回一个代理
* 当代理的参数列表发生变化时,执行预定义的callback
*/
var Proxy = {
token:"", //已有令牌
getProxy:function(callback){
var instance = function(){
//使用函数名和参数列表生成新令牌
var newToken = callback.toString()+Array.prototype.slice.call(arguments).toString();
if(this.token!=newToken){
//和已有令牌对比,更新令牌
this.token = newToken;
log("first say hello!");
}else{
//前后一致时,不调用函数,直接返回
log("not first say hello!");
return;
}
//调用函数
callback.apply(this,arguments);
};
//返回callback的代理
return instance;
}
};
通过这种方式获得的function的代理,在每次调用的时候,如果参数没发生变化,第二次调用就会被屏蔽掉。
在使用时,只需如下操作:
var proxy = Proxy.getProxy(sayHello);
proxy("zhagnsan")
如果希望在使用过程中保持函数名不变的话,可以修改其引用:
var sayHello = Proxy.getProxy(sayHello);
sayHello("zhagnsan")
- javascript 防止重复提交
- javascript 防止重复提交
- JavaScript 防止重复提交
- javascript 防止重复提交
- Javascript防止表单重复提交
- javascript防止表单重复提交
- javascript防止表单重复提交
- 使用JavaScript防止表单重复提交
- ASP.NET利用JavaScript防止重复提交
- JSP中防止重复提交(Javascript)
- javascript防止表单重复提交(转)
- 使用Javascript防止重复提交表单
- JSP中防止重复提交(Javascript)
- JavaScript之jQuery防止重复提交
- 防止重复提交数据
- 防止重复提交
- struts防止重复提交
- 防止表单重复提交
- Struts2配置文件通配符的使用
- Mat类下设置ROI
- while ; do
- IOS学习:AVAudioPlayer播放音乐文件及读取ipod库中的音乐文件
- ARC内存管理模式概要
- javascript 防止重复提交
- C#利用Xml Transform把xml和Xlst转换为html
- cookie,domain的设置读取删除关系
- 黑马程序员_基础加强(AOP)
- [CMake] Warning! PATH too long installer unable to modify PATH!
- Linux内核中如何增加自己的驱动
- sprintf and snprintf的陷阱
- Android Itext调查文档
- python手记(2)