ajax调用过程中,千万不要把request覆盖了.

今天调了一天的错误,非常郁闷,直到晚上才发现,原来是页面中定义的XMLHttpRequest对象是个全局对象,但有两个ajax调用都引用了它,每隔几分钟就会出现问题,还是莫名其妙的问题,我以为是数据解析有问题或后台问题,调啊调,结果是两个ajax调用,第二个调用了同一个request,也就是覆盖了第一个的,害得第一个偶尔会得到第二个的值,导致解析出错.......

 

以后每个ajax调用一定不要用全局的变量保存request.而是临时生成,然后将request绑定它的到处理上.

function test(){
    var temp_request = createXMLHttpRequest();
    deal_change.request = temp_request;
    temp_request.onreadystatechange=deal_change;
    temp_request.open("GET",url,true);
    temp_request.setRequestHeader("If-Modified-Since","0"); //不缓存Ajax
    temp_request.send(null);
}

function deal_change()
{
	var rStr;
	try{
		if(deal_change.request.readyState==4)\\
通过deal_change.request引用调用它的request
		{	
			if(deal_change.request.status==200)
			{	
				rStr = trim(deal_change.request.responseText);

                     ...................
}}}


切记切记.
当然若使用 框架就不用这么麻烦了.
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值