Witam, powoli wprowadzam rozszerzenie chrome i muszę przeanalizować niektóre dane zawierające encje html i muszę je rozszyfrować. Widziałem w odpowiedzi tutaj, że mogę używać document.createElement
dla niego, więc zrobiłem to:Czy elementy utworzone za pomocą document.createElement pozostają w pamięci?
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;
}
Jednak obawiam się, że document.createElement
pozostawia elementów z tyłu, ponieważ funkcja ta działa na skrypcie tle, więc nie jest to podoba często się odświeża i działa około 35 000 razy co 5 minut.
Czy elementy stworzone przez document.createElement
zostaną zwolnione, czy też zostaną? To znaczy, nie dołączam ich nigdzie i są one przypisane zmiennej lokalnej, ale nie jestem pewien.
Jasne, nic już nie odwołuje się do div po uruchomieniu funkcji, więc zostanie ostatecznie zbuforowana. – Bergi