我有两个复选框,每个选项会引发一个ajax请求,以便从服务器获得响应。在最后一个请求发出后至少有2秒的间隙时,我需要调用一个方法。任何的想法?这意味着我不想在连续点击复选框不到2秒的间隙时调用这些方法。
答案 0 :(得分:2)
设置将在2秒内激活的超时,并取消它并在有人点击另一个复选框时重新启动它。
var timeout;
var checkboxClickHandler = function() {
clearTimeout(timeout);
var timeout = setTimeout(function() {
// Your logic.
}, 2e3);
};
答案 1 :(得分:1)
var timeOut=0;
$(".selector").on('change',function(){
if(timeOut == 0)
{
timeOut=2; //change timeOut variable to "2" to be used in if condition above
//your ajax request code ;
setTimeout(function(){timeOut=0},2000); // changing back timeOut to 0 after 2 sec.
}
});
答案 2 :(得分:0)
如果它是您使用ajax调用的服务器,则可以在服务器上为特定客户端设置锁定(例如,使用mysql表),并使用一对标识符&通话时间。下次拨打电话时,您会在表格中查看最近的通话。当找到呼叫且超过2秒时:删除它并继续。 我也可以想到一个cookie解决方案,但是这样的东西应该在服务器端进行双重检查,因为本地代码可以被操作。