根据this website在JavaScript中调用removeChild()会导致称为伪泄漏的Internet Explorer特定泄漏。
有时Internet Explorer会在页面完成后使用它们将项目保留在内存中。虽然在用户离开页面后释放了这些伪泄漏,但是一些网页可能会长时间打开。要避免伪泄漏,请不要使用removeChild删除元素。相反,将父级的innerHTML设置为""
deleteCell()导致伪泄漏的方式与removeChild()相同吗?
编辑:我能够在IE8上重现此错误。信不信由你,微软声称在IE7中解决了这个问题。
答案 0 :(得分:2)
我没有能够查看IE的源代码并确认的好处,但我想如果它与Chrome实现deleteCell的方式有关,它会在内部使用removeChild,这可能会触发IE的伪泄漏。我知道IE的旧版本有这个问题,但我不确定当前版本是否有。
来自铬源:
void HTMLTableRowElement::deleteCell(int index, ExceptionCode& ec)
{
...
HTMLElement::removeChild(cell.get(), ec);
}