Javascript内部函数内存泄漏?

时间:2011-01-24 18:53:50

标签: javascript memory-leaks xmlhttprequest

我最近一直在使用Javascript但我实际上并不十分精通它。我正在尝试追踪看起来像是内存泄漏的东西,因为我的内存使用似乎在稳步增加。我可能导致这种情况的一个想法是使用内部函数。我在处理XMLHTTPRequests(和其他相关对象)时使用内部函数,这些请求每隔几秒就会创建一次。我觉得也许我没有正确地关闭它或者什么。所以这里有一些内部函数的代码,如果有人能告诉我这是否是问题以及如何修复它会很棒。 (这是在IE的上下文中,我不知道,也不知道它是否发生在其他浏览器中)。

    me.request.open("GET", url, true);
    me.request.onreadystatechange = onReadyStateChange;
    me.request.send(); 

    function onReadyStateChange() {
        if (4 == me.request.readyState) {
            if (me.request.status == 200) {
                var results = me.request.responseText;
                var resultsString = me.request.responseText.toString();
                me.stringOperation(resultsString);
                me.request.abort();
                me.request = null;
            } else {
                me.request.abort();
                me.request = null;
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

添加

function noop() {}

然后在onReadyStateChange之后me.request = nullme.request.onreadystatechange = noop

这将删除跨越JS对象/主机对象屏障的meonReadyStateChange之间的循环引用。