Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.09.2009, 08:27
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Вопрос по утечке памяти
Код javascript:
function one()
{
    var obj1=new Object;
    obj1.name='sasha';
    obj1.age=12;
    //работаем с  obj1
    //
}
one();

//дальнейшая работа
Вопрос: идет ли утечка памяти по obj1 или среда автоматически разрушит объект при выходе из области видимости единственной ссылки?
создавал в функции объект XMLHttpRequest так он прекрасно работает после. Или есть разница между видами объектов?
Спасибо за хорошую ссылку почитать или ответ.
Ответить с цитированием
  #2 (permalink)  
Старый 10.09.2009, 14:55
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от micscr
создавал в функции объект XMLHttpRequest так он прекрасно работает после
наврено вы забыли написать var
http://javascript.ru/basic/functions#oblasti-vidimosti
http://javascript.ru/basic/closure
Ответить с цитированием
  #3 (permalink)  
Старый 10.09.2009, 15:48
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от micscr Посмотреть сообщение
создавал в функции объект XMLHttpRequest так он прекрасно работает после.
Gvozd, ТС скорее всего имел в виду, почему выполняется запрос и срабатывает callback здесь, ссылок-то вроде бы не осталось:
var s = new XMLHttpRequest(); 
s.open('GET', url, true); 
s.onreadystatechange = function(){
  if (this.readyState == 4) console.info('Completed')
}; 
s.send(null); 
s = null
Ответить с цитированием
  #4 (permalink)  
Старый 10.09.2009, 17:42
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

e1f,
хм
вполне возможно
ждем его ответа
Ответить с цитированием
  #5 (permalink)  
Старый 10.09.2009, 18:06
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Примерно как 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 спасибо за ссылки, сейчас читаю.
Ответить с цитированием
  #6 (permalink)  
Старый 10.09.2009, 20:12
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

micscr,
Возможно поможет статья http://www.w3.org/TR/XMLHttpRequest/. Судя по написанному, XMLHttpRequest связан с документом, в контексте которого вызывается, так что мб ссылка на него хранится где-то еще.
Ответить с цитированием
  #7 (permalink)  
Старый 11.09.2009, 09:07
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

e1f спасибо, почитаю.
Не подскажите еще как отлаживать скрипты - например просматривать все переменные в памяти и в определенный момент, а то вчера почитал про замыкания, и понял что без отладки многие вещи не совсем понятны.
Ответить с цитированием
  #8 (permalink)  
Старый 11.09.2009, 13:37
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Ну, в ФФ firebug спешит на помощь. В Опере есть dragonfly, в ИЕ8 - свой встроенный дебаггер. Насчет драгонфлая хз -- он унылое г.., а фаербаг может все (ну кофе разве что не варит)
Ответить с цитированием
  #9 (permalink)  
Старый 11.09.2009, 15:35
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от e1f
(ну кофе разве что не варит)
Можно плагин к фаербагу написать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить из памяти весь XML документ? EisBerg Events/DOM/Window 1 03.04.2010 14:45
Утечки памяти: как сделать ? Draeden Events/DOM/Window 10 30.08.2009 18:16
мааленький вопрос по Regexp:) mirniy Общие вопросы Javascript 1 22.01.2009 20:47
Вопрос по синтаксису mootools skyfish Общие вопросы Javascript 1 11.01.2009 17:15
вопрос по long poll megaswin AJAX и COMET 2 27.05.2008 09:20