0

我有两个复选框,每个复选框都会引发一个 ajax 请求,以便从服务器获得响应。在发出最后一个请求后至少有 2 秒的间隙时,我需要调用一个方法。任何的想法?这意味着我不想在连续单击复选框少于 2 秒的间隙时调用这些方法。

4

3 回答 3

2

设置将在 2 秒内激活的超时,并在有人单击另一个复选框时取消它并重新启动它。

var timeout;
var checkboxClickHandler = function() {
    clearTimeout(timeout);
    var timeout = setTimeout(function() {
          // Your logic.
    }, 2e3);
};
于 2013-04-05T06:19:22.040 回答
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.
    }
});
于 2013-04-05T08:13:11.600 回答
0

如果它是您使用ajax 调用的服务器,您可以使用一对标识和调用时间在服务器上为特定客户端(例如使用mysql 表)设置锁定。下次拨打电话时,您可以查看表格中的最近通话。当找到一个呼叫并且超过 2 秒时:删除它并继续。我也可以想到一个 cookie 解决方案,但是像这样的东西应该总是在服务器端仔细检查,因为本地代码可以被操纵。

于 2013-04-05T06:26:46.933 回答