问题似乎出在Internet Explorer中的jQuery 1.4,以及程度较小的1.2和1.3版本中。
1.4.0、1.4.1和1.4.2均出现严重的内存泄漏。
1.2.3、1.2.6、1.3.0、1.3.1和1.3.2都显示出小得多的泄漏(10分钟后大约100 KB)。
我还尝试了一种以更传统的方式调用Ajax的程序版本:
<html> <head> <script language="javascript" type="text/javascript"> function getHTTPObject() { var xmlhttp; if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { try { xmlhttp = new XMLHttpRequest(); if (xmlhttp.overrideMimeType) { xmlhttp.overrideMimeType("text/xml"); } } catch (e) { xmlhttp = false; } } return xmlhttp; } var ajaxObject = getHTTPObject(); setTimeout(testJunk,1000); function testJunk() { ajaxObject.open('POST', 'http://XXXXXXXXXXXXXXX/delme2', true); ajaxObject.onreadystatechange = handleAjaxResponse; ajaxObject.send(null); } function handleAjaxResponse() { if (ajaxObject.readyState==4) { setTimeout(testJunk,1000); } } </script> </head> <body> <div id="test">Why is memory usage going up?</div> </body></html>这完全消除了泄漏。
因此,看来我必须重复我的Ajax调用丑陋的旧方法,直到jQuery专家们解决了这个问题。



