Javascript Json请求为大请求第二次触发

Javascript Json请求为大请求第二次触发,javascript,jquery,jsp,Javascript,Jquery,Jsp,我使用以下代码执行一些数据库处理和检索结果: $.getJSON('${fpfn:fullURL("user/uploadusers.json")}', { mod: '${param.mod}' }, function(data) { document.getElementById('appBody').style.cursor = ''; corr = data.responses;

我使用以下代码执行一些数据库处理和检索结果:

$.getJSON('${fpfn:fullURL("user/uploadusers.json")}', {
            mod: '${param.mod}'
        }, function(data) {
            document.getElementById('appBody').style.cursor = '';
            corr = data.responses;
            });
然而,问题在于,由于流程请求的繁重性,我认为请求在特定时间后重新发送,这是非常不可取的,并且会导致数据库中出现重复值。我可以为JSON请求设置一个标志或任何值,它不会第二次触发请求并一直等待响应吗


谢谢

您可以尝试设置标志变量并处理变量
$。getJSON
事件:

var requestSent = false;

if(!requestSent) {
  requestSent = true;

  $.getJSON('${fpfn:fullURL("user/uploadusers.json")}', { mod: '${param.mod}' })
     .done( function(data) {
          requestSent = false;
          // ... YOUR CODE ...
       })
     .fail(function( jqxhr, textStatus, error ) {
          requestSent = false;
          // ... YOUR CODE ...
       });
}

您可以尝试设置标志变量并处理Various
$。getJSON
事件:

var requestSent = false;

if(!requestSent) {
  requestSent = true;

  $.getJSON('${fpfn:fullURL("user/uploadusers.json")}', { mod: '${param.mod}' })
     .done( function(data) {
          requestSent = false;
          // ... YOUR CODE ...
       })
     .fail(function( jqxhr, textStatus, error ) {
          requestSent = false;
          // ... YOUR CODE ...
       });
}

请求的大小或所花的时间不太可能与发送两次有任何关系。嗯,我很确定这是请求的大小,因为它不适合较小的请求。但是,您能建议如何调试它吗?您如何确认这一点?jQuery源代码中绝对没有任何东西会在任何情况下重新发送ajax请求,除非您的代码启动了第二个请求。Daniele的回答可能会解决这个问题,但它只是治疗症状,而不是真正解决真正的问题,因此它可能会再次发生。我是JS新手。因此,我能看到的成功实例和失败实例之间的唯一区别是文件的大小。无论如何,如果你能看一下代码,那就太好了:我在你的代码中没有看到任何会导致它的东西。请求的大小或它所花费的时间不太可能与它被发送两次有任何关系。嗯,我很确定这是请求的大小,因为它不适合较小的请求。但是,您能建议如何调试它吗?您如何确认这一点?jQuery源代码中绝对没有任何东西会在任何情况下重新发送ajax请求,除非您的代码启动了第二个请求。Daniele的回答可能会解决这个问题,但它只是治疗症状,而不是真正解决真正的问题,因此它可能会再次发生。我是JS新手。因此,我能看到的成功实例和失败实例之间的唯一区别是文件的大小。无论如何,如果你能看一下代码那就太好了:我在你的代码中没有看到任何会导致它的东西