12

嗨,我正在慢慢做一个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释放了,还是留下来了?我的意思是,我不会将它们附加到任何地方,而是将它们分配给局部变量,但我不确定。

4

1 回答 1

6

他们将被垃圾收集。特别是,由于您正在开发 Chrome 扩展程序,V8 往往会很快回收这样的临时文件,因此不必担心。

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

于 2013-03-10T09:52:54.103 回答