jQuery ajax范围内存泄漏

时间:2012-11-05 21:44:18

标签: javascript jquery memory-leaks closures

我想知道在以下伪jQuery代码中是否会发生内存泄漏(因为成功回调总是引用_this)?

var _this = this;

$.ajax({
  url: "foo",
  type: "POST",
  data: data,
  success: function() {
      // Do stuff with _this
      _this.doStuffs();
})

2 个答案:

答案 0 :(得分:1)

这个代码是否在函数中?

如果是(我猜),那么在ajax调用完成或失败后,这将无法识别垃圾收集。因此理论上没有理由担心内存泄漏。

答案 1 :(得分:0)

我看不到内存泄漏。成功回调应该在被调用后进行垃圾收集(必须正确实现,你已经做到了 - 但 通过jQuery和浏览器正确完成,甚至可能在IE中完成)。之后,也可以收集_this对象(如果没有从外部引用) - 但当然不是在此之前,这就是关闭的目的。