Как корректно закрыть/удалить iframe со страницы что бы память освободилась?
Заметил, что при открывании на основной странице других iframe-ов памяти потребляется все больше и больше, но при этом если просто удалить iframe, очистка памяти не произойдет.
Как быть?
Нашел этот способ.
Сотворил такой код (не судите строго, делал на скорую руку):
(function($) {
$.fn.purgeFrame = function() {
let frame = $(this);
frame.each(function () {
let _frame = this;
$(_frame.contentWindow).off();
let doc = $(_frame.contentWindow.document);
doc.find('*').off().remove();
doc.off();
doc.empty();
$(_frame).remove();
});
};
})($);
После выполнения iframe пропадает, но памяти очищается все пару мб, тогда как занимало около 20.
Добрые люди, подскажите.
Запускайте перезагрузку контента перед удалением iframe:
$('iframe')[0].contentWindow.onbeforeunload = function() {
console.log("unloading iframe");
console.log(this);
}
$('#cleanIFrame').click(function() {
$('iframe')[0].contentWindow.location.reload();
setTimeout(function() {
$('iframe').remove();
}, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='cleanIFrame'>Удалить</button>
<br />
<iframe src="http://google.co.in" width="300" height="400" />
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости