多个Ajax请求执行返回的问题的一个示例

多个Ajax请求执行返回的问题的一个示例
有时,在业务事件处理过程中,可能会触发一个按钮或另一个触发事件的事件。
我们需要执行两个以上Ajax请求,但我们可能会担心Ajax请求执行的顺序。有时Ajax请求是有序的,这可能导致各种问题。
现在,例如,有两个Ajax事件,ajax1,ajax2
名为main的方法调用执行条目。


函数main(){
ajax1(数据,回调);
ajax2(数据,回调);
}
如果我们按照上面的方法,看来似乎让ajax1先执行,然后执行后ajax2。如果你不去想它,有些人会认为ajax1完了再ajax2。真的会那样吗
答案是不一定的,当然,我们不必考虑太多关于谁先执行,谁首先返回的事实,即有多个Ajax请求不需要执行返回序列。

如果您考虑Ajax事件序列和返回顺序
如果是这样的话,如何按照返回顺序解决Ajax事件的顺序
现在,当然,您应该考虑Ajax回调函数,OD,这是一个好主意。

现在用这种方式改变方式,如下所示

函数main(){
ajax1(数据,ajax2());
}
所以看起来,你认为非常合适吗真的它真的非常远吗
也许,但在某些情况下,可能会有点不方便,当然,也许你不会,但我遇到了一个特殊的情况。

例如,以下可能是可能的

函数main(){
aa(数据);
ajax1(数据,回调);
}

函数aa(缬氨酸){
这里是输入数据包的变化,当然,这里不写
ajax2(数据,ajax2callback);
}

功能ajax2callback(){
console.log((ajax2callback)Flash回调执行。);
console.log(闪光这是Ajax的操作执行完毕后必须执行。);
}
你认为这是为ajax2执行第一、执行第一ajax1
仔细想一想,你会找到答案的。
不!

现在,如何解决这个问题。如何确保ajax2完成。
当然,你可能会说,它将ajax1调用的回调方法ajax2方法背后的不容易,ajax2callback
我必须承认这是一个解决方案,但是如果它是一个非常老的项目,它已经做了好几年了,它调用复杂的,并且尽量避免修改以前的底层方法。也许你可以简单地解决这个问题,以便修改错误。您可能会创建更多的错误…
有没有解决这个问题的好办法
当然,解决它很容易。但是工作经验不足的人很少想到它,只能用以前的方法来解决问题,不管是37二十一。
我采用了一种相当愚蠢的方法,但仍然存在一些问题。我用setTimeout定时器执行一次,但问题必须是众所周知的。谁知道阿贾克斯会持续多久幸运的是,有一位伟大的神指引着我。

记住对数组进行排序,并说这一点,也许你会好奇它与数组排序有什么关系。
代码显示一切:

函数main(){
VaR的温度= ajax2callback;
ajax2callback =函数(){
临时();
ajax1(数据,回调);
}
aa(数据);
ajax2callback =温度;
}

函数aa(缬氨酸){
这里是输入数据包的变化,当然,这里不写
ajax2(数据,ajax2callback);
}

功能ajax2callback(){
console.log((ajax2callback)Flash回调执行。);
console.log(闪光这是Ajax的操作执行完毕后必须执行。);
}
看不到,不是很有意思,没有修改方法的最低水平,只是修改main方法,排序排序时不象比较数组中的两个小时值,不管你是使用冒泡排序,还是快速排序,都不是设置一个临时变量来存储值。当然,你在排序的时候不能设置临时变量。你可以只使用一个^算子进行分配的比例,甚至你可以懒到直接打电话给Arrays.sort()当然,制度,方法,这是可以做到的。

功能changesearchcontacttype(obj)
{
如果(!Obj)
{
返回;
}

VaR ContactType = obj.value;

无功origrendertemplate = rendertemplate;
rendertemplate =功能(数据)
{
origrendertemplate(数据);
ajaxanywhere.submitajax('setsearchcontacttype);
}
VaR结果= templatehelper.changesearchcontacttemplate(接触式、contactuiuid);
rendertemplate = origrendertemplate;
返回结果;
}
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部