Javascript 同时对ajax的多个调用

Javascript 同时对ajax的多个调用,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我试图对Ajax进行多次调用,我有时间间隔之类的字段,并且在该时间段内没有对Ajax的调用。现在的问题是,在对同一个Ajax进行多次调用时,可能会将数据与先前发送到Ajax的其他数据合并。我不确定它是否会发生。 这是我的Ajax电话 callAjax = function () { var dataIn = inObj.data || {}; var successFunc = inObj.success || function () {}; var passOn = i

我试图对Ajax进行多次调用,我有时间间隔之类的字段,并且在该时间段内没有对Ajax的调用。现在的问题是,在对同一个Ajax进行多次调用时,可能会将数据与先前发送到Ajax的其他数据合并。我不确定它是否会发生。 这是我的Ajax电话

callAjax = function () {
    var dataIn = inObj.data || {};
    var successFunc = inObj.success || function () {};
    var passOn = inObj.passOn || {};
    var myParams = {drape:1,type:'GET'};
    myParams.url = this.homeComingUrl;  
    $.extend(myParams,params);
    var data = this.fillAction(action,dataIn);
    if (myParams.drape) { vidteq.utils.drapeSheer(action); }
    var that = this;
    var magicCall = $.ajax({
       url:myParams.url,
       type:myParams.type,
       data:data,
       success: function (response) {
  // TBD we need better error handling
      if (myParams.drape) { vidteq.utils.undrapeCurtain(action); }
      successFunc(response,passOn);
      },
      error:function(response) { 
      if (myParams.drape) { vidteq.utils.undrapeCurtain(action); }
      that.gui.io.handleError(response); 
      }
    }); 
  }


saveEvents = function () {
   this.commitEditingEvent();
   var dataEvents = this.collectEventsToSave();
   //$('#calendar').fullCalendar('removeEvents');
   var that = this;
   if (vidteq.eTrainer==1) {
     dataEvents = arguments[0];
   }
   if (!dataEvents.length) { alert("Nothing to save");return; }
   this.callAjax('updateEvents',{
      data : { events : JSON.stringify(dataEvents) },
      success : function (response,passOn) {
      that.handleGetEvent(response,passOn);
      }
      },{type:'POST'}); 
 }
这可能不是理解问题所必需的。
如果有人能解释Ajax是如何处理多个调用的,那么这将非常有用。

第一行,您的匿名函数不会被保存,也不会运行。那么。在每个函数中,此指的是什么?这个上下文是什么?是此窗口还是像调用函数那样调用函数
saveEvents.apply(jQuery)

JavaScript功能强大,当您想要运行XMLHttpRequest(Ajax使用它)时,会在事件发生时调用脚本,如“找到服务器”、“发送请求”、“读取文件”、“加载文件”。。。对于您请求的每个状态。jQuery提供的Ajax帮助您请求异步。您可以同时请求任意多个Ajax请求。重要的是在成功案例中创建一个函数

在这个success函数中,您接收数据,计算数据,然后这个函数可以调用另一个Ajax请求,依此类推。当您链接这样的请求以获取相同的文件时,我们称之为Ressource


Ressource使用使用XMLHttpRequest的Ajax。

您需要在Ajax方法中执行asynic:false

function isLoggedIn() {
    var isLoggedIn;
    $.ajax({
        async: false,
        // ...
        success: function(jsonData) {
            isLoggedIn = jsonData.LoggedIn
        }
    });
    return isLoggedIn 
}

只是一个想法:将哈希/查询添加到get url是否有用?像
url+'?mathrandom
?我们无法根据您发布的代码提供帮助,因为交错响应的情况取决于
handleGetEvent
的实现,而您没有显示这一点。Ajax调用是异步的,这意味着,如果多个调用操作相同的数据/对象,则会出现不一致的数据p.s。为什么有两个明显相同的代码块?数据不应该是一致的,但解决方案是什么。@devqo这不是我想要的。看,当多个请求发送到同一个Ajax时,数据就会变得不一致,这就是我的问题所在。