Вопрос по утечке памяти
Код 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, время: 00:00. |