Javascript 同时对ajax的多个调用
我试图对Ajax进行多次调用,我有时间间隔之类的字段,并且在该时间段内没有对Ajax的调用。现在的问题是,在对同一个Ajax进行多次调用时,可能会将数据与先前发送到Ajax的其他数据合并。我不确定它是否会发生。 这是我的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
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时,数据就会变得不一致,这就是我的问题所在。