Сегодня вечером я кодирую галерею изображений, и это привело меня к философскому вопросу
Я создаю предварительно загруженный объект Image и устанавливаю для него событие onload
... onmouseover = function() {
preloadActive = true;
imgPreload = new Image();
imgPreload.onload = function() {
preloadActive = false;
}
imgPreload.src = ...;
}
Где imgPreload
и preloadActive
- глобальные переменные
Теперь представьте, что новый onmouseover()
срабатывает до выполнения onload()
.
запускается строка кода, которая создает новый объект изображения, старый объект изображения теряет последнюю ссылку и переходит на Erebus, и ожидает, что сборщик мусора ее съест.
Вопрос идет здесь:
Старый экземпляр объекта не уничтожается сразу. Его событие onload продолжает жить, никто не знает, как долго? У вас есть кросс-браузерный опыт?
Спасибо!
PS: меня не волнует IE6
PPS: Что произойдет, если у меня будет объект с setInterval ID таймаута внутри?
obj.someVar = setInterval(...)
setInterval остановился в тот самый момент, когда я выполняю
obj = {}