Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Не получили
письмо с кодом активации
?
1 час
1 день
1 неделя
1 месяц
Навсегда
Новости:
Начало
Помощь
Поиск
Календарь
Вход
Регистрация
Forum Webscript.Ru
»
Программирование
»
JavaScript & JScript
»
Удаление таблиц
« предыдущая тема
следующая тема »
Печать
Страницы: [
1
]
Вниз
Автор
Тема: Удаление таблиц (Прочитано 3063 раз)
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. Тогда память в ИЕ не засоряется.
Записан
Печать
Страницы: [
1
]
Вверх
« предыдущая тема
следующая тема »
Forum Webscript.Ru
»
Программирование
»
JavaScript & JScript
»
Удаление таблиц
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