一个页面调用两个ajax对象:
varhttp_request=GetXmlHttpObject();varhttp_request2=GetXmlHttpObject();我让他们分别执行不同的函数,...
var http_request=GetXmlHttpObject();
var http_request2=GetXmlHttpObject();
我让他们分别执行不同的函数,可是发现http_request2就不管用了,如果把http_request注销那么http_request2就可以执行了。
但是我这个页面就需要两个AJAX,我试过用同步方法可以实现两个同时运行,但是速度太慢,我还是想用异步方式,有高人帮忙解决一下。 展开
var http_request2=GetXmlHttpObject();
我让他们分别执行不同的函数,可是发现http_request2就不管用了,如果把http_request注销那么http_request2就可以执行了。
但是我这个页面就需要两个AJAX,我试过用同步方法可以实现两个同时运行,但是速度太慢,我还是想用异步方式,有高人帮忙解决一下。 展开
2个回答
展开全部
你肯定是B的回调把A的回调给覆盖掉了。
出现这类问题,一般是所有的AJAX访问都是使用的同一个对象
这里面要分清楚同一个类和同一个对象
var ajax = new ajax()
ajax.post()....1
ajax.callback = callback1
ajax.post()....2
ajax.callback = callback2
这样使用时,同步处理还行,不会混淆,
但是异步处理时1操作回调时 ajax.callback止血时已经变为callback2了
所以callback1就不会被执行
解决办法1
异步改为同步
解决办法2:
ajax1 = new ajax()
....
ajax2 = new ajax()
这样就没有问题了
以上回答你满意么?
出现这类问题,一般是所有的AJAX访问都是使用的同一个对象
这里面要分清楚同一个类和同一个对象
var ajax = new ajax()
ajax.post()....1
ajax.callback = callback1
ajax.post()....2
ajax.callback = callback2
这样使用时,同步处理还行,不会混淆,
但是异步处理时1操作回调时 ajax.callback止血时已经变为callback2了
所以callback1就不会被执行
解决办法1
异步改为同步
解决办法2:
ajax1 = new ajax()
....
ajax2 = new ajax()
这样就没有问题了
以上回答你满意么?
追问
请你看清楚我的提问后再回答好吗?第一我的提问明明写着是两个ajax对象,第二我提问中明明写着我不想用同步只想用异步。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询