2012-05-20 3 views
0

Это хороший способ сбора мусораXHR мусора собирают оптимизации

function getFile() { 
    var xhr = new XMLHttpRequest(); 
    xhr.onload = function() { 
     //do stuff 
     delete(xhr) 
    }; 
} 

, а затем вызвать getFile() пару раз

(я редактировал его использовать функцию)

Как я бы избавился от xhr, когда все будет готово. Я просто немного запутался в том, удастся ли его удалить xhr изнутри самой функции

+0

вы можете добавить остальные кода и как вы его называете? – Joseph

ответ

2

Вы должны использовать область действия, чтобы сделать трюк для вас. В области JavaScript определяется оператор функции. Переменные, определенные внутри функции, будут удалены автоматически, когда функция выходит из области видимости (и вы не использовали переменную в замыкании)

Так что в вашем случае:

function scope() { 
    var xhr = new XMLHttpRequest(); 
    xhr.onload = function() { 
    //do stuff 
    }; 
} 
+0

Да, мой запрос xhr уже находится в функции, я предполагаю, что это бит, хорошо ли этот тип структуры. – Akshat

+0

Я все еще могу получить доступ к переменной xhr в консоли Chrome javascript, но кроме того, что она ограничена функцией, является ли это характеристикой консоли или она ушла? – Akshat

+0

Я бы опустил удаление здесь и доверяю определению JavaScript. Подробнее о инструкции удаления здесь: http://stackoverflow.com/questions/742623/deleting-objects-in-javascript – koenpeters

Смежные вопросы