deleteCell会导致伪泄漏吗?

时间:2012-03-26 19:38:09

标签: javascript memory-leaks

根据this website在JavaScript中调用removeChild()会导致称为伪泄漏的Internet Explorer特定泄漏。

  

有时Internet Explorer会在页面完成后使用它们将项目保留在内存中。虽然在用户离开页面后释放了这些伪泄漏,但是一些网页可能会长时间打开。要避免伪泄漏,请不要使用removeChild删除元素。相反,将父级的innerHTML设置为""

deleteCell()导致伪泄漏的方式与removeChild()相同吗?

编辑:我能够在IE8上重现此错误。信不信由你,微软声称在IE7中解决了这个问题。

1 个答案:

答案 0 :(得分:2)

我没有能够查看IE的源代码并确认的好处,但我想如果它与Chrome实现deleteCell的方式有关,它会在内部使用removeChild,这可能会触发IE的伪泄漏。我知道IE的旧版本有这个问题,但我不确定当前版本是否有。

来自铬源:

void HTMLTableRowElement::deleteCell(int index, ExceptionCode& ec)
{
        ...
        HTMLElement::removeChild(cell.get(), ec);
}