ОК, у меня есть список с несколькими вещами, которые заставляют думать, что причина, по которой мое дополнение использует много памяти.
1 - Использование try / catch может увеличить использование памяти?Пример:
try{
if(!condition) throw "Message";
//some code
}catch(ex){}
Если это проблема, я думал об использовании:
(function(){
if(!condition) return;
})();
2 - Использование изображений с base64 также может улучшить использование памяти?
<img src="data:image/png;base64,[...]==" />
Или нет проблем?
3 - Я использую функцию для обработки результата AJAX, поэтому я могу использовать responseXML ...
if (o.readyState != 4) return;
var newdoc = document.implementation.createDocument(null, null, null);
var newhtml = document.createElement('div');
newhtml.innerHTML = o.responseText.replace(/script/ig, "");
newdoc.appendChild(newhtml);
newdoc.getElementById('...');
Я не могу использовать JQuery, этосамый простой способ, который я нашел, - использовать responseXML, но он может также вызвать утечку памяти.
4 - Сбрасывать переменные, помогает или бесполезно?
var a = "something";
if(a=="something")
//
//I'm not going to use the variable "a" anymore, so..
a = undefined; //Now i unset the variable
5 - Если вы добавляетеСобытие для элемента, или вы используете appenChild, это увеличивает память.
element.appendChild(newelement);
Если вы измените страницу, похоже, что память остается прежней .. Если я использую
window.addEventListener("unload", function() {
element.removeChild(newelement)
}
Это тоже чем-то помогает?
Спасибо.
Извините за английский.