Это немного поздний ответ, но я заметил, что он остался без ответа. Глядя на ваш код, вы работаете синхронно, и там нет циклических ссылок. Я сомневаюсь, что это является источником утечки памяти, и это, вероятно, будет где-то еще в вашем коде. Ранее я сталкивался с утечками памяти в гаджетах рабочего стола Windows, и самый большой из них я обнаружил при динамическом добавлении тегов сценария в документ (например, при использовании методов обратного вызова JSON из веб-службы).
Между прочим, проверяемые браузером проверки почти полностью избыточны. IE7, самая низкая версия IE, допустимая в Vista, представила объект XMLHttpRequest () (хотя он может быть отключен пользователем или системным администратором). Я бы порекомендовал просто заменить его следующей строкой:
xmlHttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
<ч />
Два года спустя я получил здесь голосование и заново открыл вопрос, и ответ сразу же пришел ко мне. Я вспомнил, что видел следующее предупреждение в учебнике по MDN для XMLHttpRequest:
Примечание: Вы не должны использовать синхронные запросы XMLHttpRequest, потому что из-за асинхронного характера работы сети существуют различные способы утечки памяти и событий при использовании синхронных запросов.
Я немного изо всех сил пытаюсь выяснить, правда ли это или просто добавлено каким-то случайным человеком, чтобы помочь распространению страха (в конце концов, это вики), но, возможно, это и объясняет утечку вашей памяти.