日期:2014-05-16  浏览次数:20531 次

使用jQuery Ajax功能的时候需要注意的一个问题

jquery的Ajax请求都会创建一个xmlHttprequest对象,理论上讲,长连接的请求是一个无限递归,请求数量是非常大的,但是由于每次请求都会建立一个新的xmlhttprequest,而且jquery不会自动回收资源,所以导致了内存溢出。

通过查看jquery API,发现jquery还有一个?complete对象,是请求完成后回调函数 (请求成功或失败之后均调用)。 同时有两个参数XMLHttpRequest, textStatus。所以,我们只需要在请求完成后,将传回的XMLHttprequest对象手工回收即可,代码如下:

?


$.ajax({
????url:?"http://www.aizr.net",
????data:?{?name:?"xxxx"?},
????dataType:?"xml",
????success:?function?(data,?textStatus)?{?
???????//do?something...
????},
????complete:?function?(XHR,?TS)?{?XHR?=?null?}
});

?