Это течет в IE? - PullRequest
       28

Это течет в IE?

1 голос
/ 26 июля 2011

У меня есть страница aspx, которая отправляет Ajax-запрос (используя jquery) в веб-службу для возврата некоторых данных.

Мой обработчик ошибки выглядит примерно так (не совсем, но это идея):

onerror: function(status,xhr, whatever) {
  var objectResult = eval('('+xhr.Status+')');
  alert(objectResult.Message);
}

Вопрос:

Создает ли это потенциальную утечку памяти из-за выражения eval, присваиваемого моей локальной переменной?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 26 июля 2011

Это определенно не приведет к утечке памяти.

Ваша переменная objectResult будет уничтожена в конце функции (так как она локальная переменная).

Фактический объект в памяти, для которого objectResult был , ссылающийся на , теперь свободен для сбора мусора (поскольку единственная переменная, ссылающаяся на него, была уничтожена).Хотя, вероятно, он не будет собирать мусор сразу.

1 голос
/ 26 июля 2011

Нет, это не должно создавать утечку памяти.Переменная objectResult должна быть очищена, так как она покидает область видимости, когда ваш обработчик завершает работу.

...