Данный элемент, как div
на странице, и я добавить объект к нему, как это:Нужно ли очищать связанный объект при удалении элемента
div.data=data;
Теперь, когда я пытаюсь удалить div
, необходимо ли установить его данные в значение null перед удалением?
Update:
В самом деле, я получить данные с сервера, то я перечислю его, как это (перед списком, я удалить старые ememetns:
var data=[{name:'xx'},{name:'yy'}...];
var resultDiv=document.getElementById("result");
resultDiv.innerHTML=""; //clear the old items
for(var i=0,len=data.length;i<len;i++){
var div=document.createElement("div");
div.data=data[i];
resultDiv.appendChild(div);
}
....
Зависит от того, что такое 'data'. У старых браузеров, особенно IE, были проблемы с утечкой памяти, если данные содержали циклические ссылки на div (который включает в себя переменные замыкания, если у вас есть функции!) – Bergi
JS runtime должен использовать сборщик мусора в эти дни, поэтому я бы сказал нет. Проблема, скорее всего, будет наоборот: любые данные, которые вы прикрепляете к элементам DOM, остаются в памяти, если их не удалять. – millimoose
@millimose: JS runtime всегда использовал сборщик мусора с самого начала (NS2.0). Проблема в более старых версиях IE использовала сборщик мусора ссылок, который не мог обрабатывать циклические ссылки. – slebetman