用文档创建元素.createElement留在内存中

Do elements created with document.createElement stay in memory?

本文关键字:内存 createElement 文档 创建 元素      更新时间:2023-09-26

嗨,我正在慢慢地做一个chrome扩展,我需要解析一些包含html实体的数据,我需要解码它。我在这里的答案中看到我可以使用document.createElement,所以我这样做:

htmlDecode: function(input) {
    if(/[<>]/.test(input)) { // To avoid creating tags like <script> :s
        return "Invalid Input";
    }
    var e = document.createElement('div');
    e.innerHTML = input;
    return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
}

然而,我担心document.createElement留下元素,因为这个函数在后台脚本上运行,所以它不像它经常刷新,它每5分钟运行大约35000次。

那么,由document.createElement创建的元素会被释放,还是会保留?我的意思是,我没有在任何地方附加它们它们被赋值给一个局部变量,但我不确定

它们将被垃圾收集。特别是,因为你正在开发一个Chrome扩展,V8倾向于回收像这样的临时非常快,所以它不应该有太多的关注。

如果您通常担心这个问题,一个常见的解决方案是简单地保留一个div来完成这项工作。