PDA

Просмотр полной версии : К профи: Уничтожение локальной переменной - объекта XML


: hr :
31.05.2006, 00:29
Друзья, вопрос таков - существует метод, отправляющий на сервер некий XML:

Chat.prototype.send = function() {
var $sender = new XML("<xml>"+msg+"</xml>");
$sender.sendAndLoad("chat.php", this.$xml);
}

Что будет происходить с объектом $sender, после отправки xml'я - он будет уничтожен, либо останется в оперативной памяти. Метод вызывается многократно, и при подобном коде будут ли накапливаться копии объекта в памяти?
Также интересен вопрос, что произойдет, если метод будет вызван до окончания отправки данных на сервер - отправка прервется или же пройдет до конца, а по окончании контейнер объекта будет уничтожен?

etc
31.05.2006, 13:33
$sender удаляется после выполнения функции, как и любая другая локальная переменная.

Данные будут отправлены в любом случае, т.к. сама функция sendAndLoad отдаёт необходимые данные плееру и сам плеер занимается отправкой. Контейнер к тому времени уже может быть уничтожен.

heilong
31.05.2006, 14:36
Конечно, удаляется. По-моему, только, не сразу, а когда решит сборщик мусора. То есть может сначала понакапливаться, а потом удалиться. Могу ошибаться, мнение основано на других языках с automatic GC

: hr :
31.05.2006, 15:22
Спасибо!

Данные будут отправлены в любом случае, т.к. сама функция sendAndLoad отдаёт необходимые данные плееру и сам плеер занимается отправкой. Контейнер к тому времени уже может быть уничтожен.

__etc, и откуда только ты это все знаешь? ;)

etc
31.05.2006, 18:11
Жызнь такая.

Nirth
31.05.2006, 19:07
Для этого не надо быть гением
Data and Data Types > About variables > About variables and scope > Local variables (http://livedocs.macromedia.com/flash/8/main/00001203.html)