![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Задумался, а уму нету....
Допустим есть такое глобальное объявление var parabukov = [];. По ходу выполнения сценария набиваем parabukov значениями. Если потом взять, и снова объявить var parabukov = [];, всё набитое затрется? Ну и в таком случае input = tab.getElementsByTagName("input"); при повторном глобальном объявлении как будет? Наверное, чушь сморозил... -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
В случае с массивом вы прибиваете ссылку на объект. После чего сборщик мусора со спокойной совестью освобождает саму память. В случае с элементом -- на него есть ссылки в DOM дереве, а значит останется он себе мирно жить. )
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
То есть, переообъявив массив, память автоматически очистится от старых значений. Меня это и беспокоило, а то переопределяя в цикле можно быстро всё повесить.
А как часто работает сборщик мусора? Это постоянный процесс или по мере необходимости освобождения памяти? -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
Если верить майкрософту:
Если память не изменяет, при достаточном количестве памяти запускается раз в 3 секунды. Если память мало, то чаще. Для других браузеров не интересовался цифрами. Добавлено через 4 минуты и 23 секунды Нашел свою старую тему со ссылкой по теме. Там вопрос касательно ActiveX разбирается, но и обычные переменные тоже зацеплены -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
solenko, спасибо. Выходит, не стоит мусорить без необходимости.
По массивам элементов, я неправильно выразился, имеется ввиду следующее. Объявляем input = tab.getElementsByTagName("input"); затем input = tab2.getElementsByTagName("input"); потом input = tab3.getElementsByTagName("input"); Видимо, предыдущие ссылки на элементы так же уйдут в расспоряжение мусорщика. В общем, понятно, спасибо. -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |