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はこのような一時的なものを非常に迅速にリサイクルする傾向があるため、それほど心配する必要はありません。

これについて一般的に心配している場合、一般的な解決策の1つは、1つのdivを保持して作業を行うことです。

于 2013-03-10T09:52:54.103 に答える