Как найти утечку памяти в JS коде?

На странице несколько строк CSS, HTML
И несколько функций подобных этой:
$(document).on('click', '#message', function(e){
	$.ajax({
			url: 'PutMessage',
			type: "POST",
			data: JSON.stringify({ data: $(this).val() }),
			processData: false,
			contentType: "application/json; charset=UTF-8"
		})
		.done(function(dataJson) {
			$(this).val('');
		});
		return false;
	});

При этом диспетчер задач гугл хрома показывает, что страница жрёт 25 МБ + каждую минуту ещё 200 КБ
В связи с чем может быть утечка памяти, и как её предотвратить?
  • Вопрос задан
  • 2009 просмотров
Пригласить эксперта
Ответы на вопрос 4
streetflush
@streetflush
Ну если по документу не лупить, то надо полный код.... Этот пост не должен жрать, если только с сервера не приходит мнооооого данных.
Ответ написан
Комментировать
AlexXYZ
@AlexXYZ
O Keep Clear O
Мне кажется, что вашу проблему может помочь найти chrome profiling:

https://developer.chrome.com/devtools/docs/heap-pr...

Ооочень полезнная штука. Поможет увидеть работу с памятью JS изнутри. Например, если вы создаёте одну большую строку из нескольких маленьких, например, var str = "a"+"b"+"c"+"d"; то будете удивлены, что в памяти появились строки "ab", "abc" и "abcd", хотя вы первые две не заказывали. При том, что присваивание работает только для последнего результата.
Ответ написан
Вероятнее это сам jQuery брешь для утечек.
Ответ написан
petermzg
@petermzg
Самый лучший программист
В Developer Tools (F12) есть вкладка Profiles, так выбираете нужный тип и Start.
Отчет покажет проблемы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы