JQuery1.4+ Ajax IE8 内存泄漏问题 |
本文标签:Ajax,IE8,内存泄漏 并且JQuery1.3.2版本不存在,JQuery1.4+版本存在 通过对比,最终找到这两个版本的其中一个差别 JQuery1.4+在ajax方法增加了一段代码,用于在abort时调用onreadystatechange方法 复制代码 代码如下: try { var oldAbort = xhr.abort; xhr.abort = function() { if ( xhr ) { oldAbort.call( xhr ); } onreadystatechange(); }; } catch(e) { } 经查,正是此段赋值产生了错误 onreadystatechange的readyState为4,即成功时,将xhr.abort销毁 内存泄漏解决 另:如果直接xhr.abort=null,不知道为什么在IE6下会报错 只好try…catch一下,反正IE6不修正错误与不会有问题 此项问题在IE8中有问题的原因不明 可能是xhr.abort与oldAbort产生了一个闭包? 但为什么IE6不泄漏? |