Javascript 应用程序 - 泄漏内存

标签 javascript jquery

我开发了一个客户端应用程序,不幸的是我怀疑内存泄漏。
该应用程序有很多私有(private)克隆对象,在每个函数结束时,我通过将它们设置为 null 来处理这些对象。 (foo = null;)

我的问题是,我该如何处理这些元素?
使用 foo = null 就足够了吗?

另外,有什么工具可以帮助我找出问题所在吗?

解决方案

最后我的问题是错误使用了jquery进度条

        function updateProgressBar() {
        if (!handle) //by adding this, the problem solved. 
            return;
        jQuery("#progressbar").progressbar({
            value: ++pct
        });
        if (pct >= 100) {
            clearInterval(handle);
            pct = 0;
            setInterval("updateProgressBar()", 300);
        }
    }

最佳答案

浏览器内存泄漏的主要原因是当您在 DOM 和 JavaScript 对象之间存在循环链接时。主要发生在孤立的 DOM 节点仍然引用事件处理程序或其他 JS 对象时。 http://code.google.com/chrome/devtools/docs/heap-profiling-dom-leaks.html

Chrome 开发人员工具可让您查看堆并检查仍位于内存中但未通过使用的“Heap Profiler”的元素 http://gent.ilcore.com/2011/08/finding-memory-leaks.html

但要解决实际问题,将属性设置为 null 足以打破循环引用并应该修复内存泄漏。

关于Javascript 应用程序 - 泄漏内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9826261/

相关文章:

javascript - 更新特定对象中的特定属性

javascript - jQuery 滚动功能滚动到具有元素 ID 的 div 顶部

javascript - 通过 javascript 确定更改了哪些字段

javascript - JS : ObservableArray Filtering

javascript - 从 window.onbeforeunload 中排除 DIV 内的点击

javascript - 如何使用 jquery 或 php 根据先前选择的响应保持单选按钮的选择?

java - 从本地主机引用标签库

jquery - 使用单个 .click() 触发多个函数?

jquery - 您如何调整两个容器之间的容器大小?

javascript - 未捕获的语法错误 : Unexpected token ILLEGAL