Недавно я участвовал в разработке проекта, и, поскольку проект является приложением Fat Client Client, основанной на браузере, на странице много iframes. Более поздние тесты обнаружили, что тем больше памяти браузера всегда была высокой, и чем больше страниц iframe она открывается, тем больше использование памяти, что особенно очевидно в браузерах серии IE. Даже если все открытые страницы iframe закрыты, использование памяти значительно не уменьшилось. IE Браузер очень застрял, когда использование памяти достигает около 400 м. Анализ обнаружил, что iframe не была выпущена, поэтому память, занятая всеми закрытыми iframes, была выпущена. Хотя он не может быть полностью выпущен, использование памяти IFRAME не будет продолжать расти, а использование памяти всего приложения контролируется на уровне около 150 м.
/** * Динамически создать iframe * @param dom Создать контейнер iframe, то есть создать iframe в DOM. DOM может быть Div, SPAN или другой тег. * @param SRC PATE WEAST PAGE, открытый в iframe* @param Onload, это событие запускается после загрузки iframe, что может быть пустым* @return возвращать созданный объект iframe*/function createiframe (dom, src, onload) {// create iframe в документе varrame = document.createlement ("iframe); // Установить стиль iframe iframe.style.width = '100%'; iframe.style.height = '100%'; iframe.style.margin = '0'; iframe.style.padding = '0'; iframe.style.overflow = 'hidden'; iframe.style.border = 'none'; // Привязывание события Onload Iframe if (onload && object.prototype.tostring.call (onload) === '[object function]') {if (iframe.attachevent) {iframe.attachevent ('Onload', Onload); } else if (iframe.addeventListener) {iframe.addeventListener ('load', Onload); } else {iframe.onload = onload; }} iframe.src = src; // загрузить iframe в dom.appendchild (iframe); вернуть iframe; } /*** Уничтожьте iframe и отпустите память, занятую Iframe. * @param iframe объект iframe, который необходимо уничтожить*/function destressiframe (iframe) {// указать iframe на пустую страницу, которая может освободить большую часть памяти. iframe.src = 'О: Blank'; попробуйте {iframe.contentwindow.document.write (''); iframe.contentwindow.document.clear (); } catch (e) {} // Удалить iframe с страницы iframe.parentnode.removechild (iframe); }