Saya baru-baru ini berpartisipasi dalam pengembangan proyek, dan karena proyek ini adalah aplikasi klien lemak berbasis browser (RIA), ada banyak iframe di halaman. Tes kemudian menemukan bahwa memori browser selalu tinggi, dan semakin banyak halaman iframe yang dibuka, semakin besar penggunaan memori, yang sangat jelas dalam browser seri IE. Bahkan jika semua halaman iframe terbuka ditutup, penggunaan memori tidak menurun secara signifikan. IE Browser menjadi sangat macet ketika penggunaan memori mencapai sekitar 400m. Analisis menemukan bahwa iframe tidak dirilis, sehingga memori yang ditempati oleh semua iframes tertutup dirilis. Meskipun tidak dapat sepenuhnya dirilis, penggunaan memori IFRAME tidak akan terus tumbuh, dan penggunaan memori dari seluruh aplikasi dikendalikan sekitar 150m.
/** * Secara dinamis buat iframe * @param dom Buat wadah iframe, yaitu, buat iframe di dom. DOM dapat berupa div, rentang atau tag lainnya. * @param SRC Path halaman web dibuka di iframe* @param onload acara ini dipicu setelah iframe dimuat, yang bisa kosong* @return mengembalikan objek iframe yang dibuat*/fungsi createIframe (dom, src, onload) {// buat iframe di dokumen var iframe = document.createelement ("iframe (" iframe ("iframe (" iframe ("iframe (" iframe ("iframe (" iframe ("iframe (" iframe ("iframe (" iframe) // Atur gaya iframe iframe.style.width = '100%'; iframe.style.height = '100%'; iframe.style.margin = '0'; iframe.style.padding = '0'; iframe.style.overflow = 'tersembunyi'; iframe.style.border = 'tidak ada'; // mengikat peristiwa onload iframe if (onload && object.prototype.toString.call (onload) === '[fungsi objek]') {if (iframe.attachevent) {iframe.attachevent ('onload', onload); } else if (iframe.addeventListener) {iframe.addeventListener ('load', onload); } else {iframe.onload = onload; }} iframe.src = src; // Muat iframe ke dom.appendChild (iframe); kembalikan iframe; } /*** Hancurkan iframe dan lepaskan memori yang ditempati oleh iframe. * @param iframe Objek iframe yang perlu dihancurkan*/function dashingiframe (iframe) {// arahkan iframe ke halaman kosong, yang dapat membebaskan sebagian besar memori. iframe.src = 'tentang: blank'; coba {iframe.contentwindow.document.write (''); iframe.contentwindow.document.clear (); } catch (e) {} // hapus iframe dari halaman iframe.parentnode.removechild (iframe); }