【发布时间】:2014-02-18 05:21:48
【问题描述】:
我在使用 Ajax 时出现内存泄漏,每次调用 ajax 后 Firefox 的内存使用量都会增加。
我使用 jQuery 1.10.2。
是否有针对此错误的解决方法/修复?
编辑:我使用 $.post 而不是 $.ajax。
任何 $.post 函数都会导致泄漏:
$(".Button1").on("click", function(){
$.post(document.location, "data1=1", function(data) {
$("#mainDiv").html(data);
});
});
这是一个示例代码,每次点击按钮内存占用都会增加。
编辑2: 我也在 Chrome 上测试过,同样的问题,所以问题出在 jQuery 上。
我已经尝试过这种解决方法: http://bugs.jquery.com/ticket/10824
但问题依然存在。
当我使用 setInterval 每 10 秒运行一次 Ajax 函数时,这一点会更加明显,此时内存会急剧增加。
【问题讨论】:
-
您的问题缺少足够的信息来诊断问题。请发布代码的相关部分并详细说明泄露的数据。
-
听起来应该是 Firefox 的错误报告,而不是 StackOverflow 问题。
-
@Frederic 查看示例代码
-
@Venemo 我也在 Chrome 上测试过,同样的问题
-
如果您通过 AJAX 响应将数据附加到生成的 HTML 中,则可能会导致问题,然后每次运行 AJAX 请求时,之前在
#mainDiv中的 DOM 元素被销毁,但相关数据可能保持不变。请参阅此堆栈溢出:jQuery memory leak with DOM removal
标签: jquery memory memory-leaks