Автор Тема: Удаление таблиц  (Прочитано 2491 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
Удаление таблиц
« : 17 Ноября 2006, 15:40:47 »
К вопросу об утечке памяти в ИЕ.

Как правильно удалять таблицу, а точнее tbody таблицы?

Сначала делал так:
var mTbl document.getElementById(tableId);
var 
tbl_body mTbl.tBodies[0];
mTbl.removeChild(tbl_body);


Но если верить программке Drip, да и просто в task manager-е видно, что нифига память не освобождается после удаления tbody.

Попробовал сделать так, но толку мало, все равно не освобождается память:
function garbage(tBodyObj)
{
	
while(
tBodyObj.firstChild)
	
{
	
	
var 
trow tBodyObj.firstChild;
	
	
while(
trow.firstChild)
	
	
{
	
	
	
var 
cell trow.firstChild;
	
	
	
trow.removeChild(cell);
	
	
	
cell null;
	
	
}
	
	
tBodyObj.removeChild(trow);
	
	
trow null;
	
}
}

var 
mTbl document.getElementById(tableId);
var 
tbl_body mTbl.tBodies[0];

garbage(tbl_body);
mTbl.removeChild(tbl_body);
tbl_body null;


Может есть более "правильные" варианты?

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
Удаление таблиц
« Ответ #1 : 21 Ноября 2006, 15:50:54 »
На форуме dklab подсказали. Кроче, вместо appendChild и removeChild, которые я использовал для создания и удаления строк и ячеек таблицы, нужно использовать insertRow, insertCell, deleteCell, deleteRow. Тогда память в ИЕ не засоряется.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28