Вопрос по утечке памяти
Код javascript:
function one()
{
var obj1=new Object;
obj1.name='sasha';
obj1.age=12;
//работаем с obj1
//
}
one();
//дальнейшая работа Вопрос: идет ли утечка памяти по obj1 или среда автоматически разрушит объект при выходе из области видимости единственной ссылки? создавал в функции объект XMLHttpRequest так он прекрасно работает после. Или есть разница между видами объектов? Спасибо за хорошую ссылку почитать или ответ. |
Цитата:
http://javascript.ru/basic/functions#oblasti-vidimosti http://javascript.ru/basic/closure |
Цитата:
var s = new XMLHttpRequest();
s.open('GET', url, true);
s.onreadystatechange = function(){
if (this.readyState == 4) console.info('Completed')
};
s.send(null);
s = null
|
e1f,
хм вполне возможно ждем его ответа |
Примерно как e1f писал, вот так по сути у меня:
function xxx()
{
var s = new XMLHttpRequest();
s.open('GET', url, true);
s.onreadystatechange = function(){
if (this.readyState == 4) console.info('Completed')
};
s.send(null);
}
Т.е. в функции объект задан как локальный var. По сути после выхода из функции ссылка на объект станет недоступной, а сам объект еще будет работать - прорабатывать свои события и верно завершится на readyState == 4. Почему? Что с ним будет дальше? Gvozd спасибо за ссылки, сейчас читаю. |
micscr,
Возможно поможет статья http://www.w3.org/TR/XMLHttpRequest/. Судя по написанному, XMLHttpRequest связан с документом, в контексте которого вызывается, так что мб ссылка на него хранится где-то еще. |
e1f спасибо, почитаю.
Не подскажите еще как отлаживать скрипты - например просматривать все переменные в памяти и в определенный момент, а то вчера почитал про замыкания, и понял что без отладки многие вещи не совсем понятны. |
Ну, в ФФ firebug спешит на помощь. В Опере есть dragonfly, в ИЕ8 - свой встроенный дебаггер. Насчет драгонфлая хз -- он унылое г.., а фаербаг может все :) (ну кофе разве что не варит)
|
Цитата:
|
| Часовой пояс GMT +3, время: 07:53. |