ホームページ ウェブフロントエンド jsチュートリアル iframe_javascript スキルが占有するメモリを動的に作成および解放する方法

iframe_javascript スキルが占有するメモリを動的に作成および解放する方法

May 16, 2016 pm 04:37 PM
iframe 動的に作成される 空きメモリ

最近プロジェクトの開発に参加しました。プロジェクトはブラウザベースのリッチ クライアント (RIA) アプリケーションであるため、ページ内で多数の iframe が呼び出されます。その後のテストでは、ブラウザのメモリが高いままであり、特に IE シリーズのブラウザでは、iframe ページが開かれるほどメモリの使用量が増加することが判明しました。開いている iframe ページをすべて閉じても、メモリ使用量が約 400M に達すると、IE ブラウザはあまりスタックしなくなります。分析の結果、iframe が解放されていないことが問題の原因であることが判明したため、閉じているすべての iframe が占有しているメモリを解放しました。完全には解放できませんでしたが、iframe のメモリ使用量は増加し続けませんでした。アプリケーション全体は約 150M で制御されました。

/** 
* 动态创建iframe 
* @param dom 创建iframe的容器,即在dom中创建iframe。dom可以是div、span或者其他标签。 
* @param src iframe中打开的网页路径 
* @param onload iframe加载完后触发该事件,可以为空 
* @return 返回创建的iframe对象 
*/ 
function createIframe(dom, src, onload){ 
//在document中创建iframe 
var iframe = document.createElement("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'; 

//绑定iframe的onload事件 
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下面 
dom.appendChild(iframe); 
return iframe; 
} 

/** 
* 销毁iframe,释放iframe所占用的内存。 
* @param iframe 需要销毁的iframe对象 
*/ 
function destroyIframe(iframe){ 
//把iframe指向空白页面,这样可以释放大部分内存。 
iframe.src = 'about:blank'; 
try{ 
iframe.contentWindow.document.write(''); 
iframe.contentWindow.document.clear(); 
}catch(e){} 
//把iframe从页面移除 
iframe.parentNode.removeChild(iframe); 
}
ログイン後にコピー

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTML で IFrame をトリミングするにはどうすればよいですか? HTML で IFrame をトリミングするにはどうすればよいですか? Aug 29, 2023 pm 04:33 PM

インラインフレームはHTMLではiframeと呼ばれます。ラベルは、ブラウザがスクロール バーや枠線を使用してさまざまなドキュメントを表示できる、コンテンツ内の長方形の領域を指定します。現在の HTML ドキュメント内に別のドキュメントを埋め込むには、インライン フレームを使用します。要素への参照は、HTMLiframe name 属性を使用して指定できます。 JavaScript では、要素への参照も name 属性を使用して行われます。 iframe は基本的に、現在表示されている Web ページ内に Web ページを表示するために使用されます。 iframe を含むドキュメントの URL は、「src」属性を使用して指定されます。構文 以下は HTML <iframesrc="URL"title="d の構文です。

iframe の読み込みが遅いのはなぜですか? iframe の読み込みが遅いのはなぜですか? Aug 24, 2023 pm 05:51 PM

iframe の読み込みが遅い原因には、主にネットワーク遅延、リソース読み込み時間の長さ、読み込み順序、キャッシュ メカニズム、セキュリティ ポリシーが含まれます。詳細な紹介: 1. ネットワーク遅延: ブラウザーが iframe を含む Web ページを読み込むとき、iframe 内のコンテンツを取得するためにサーバーにリクエストを送信する必要があります。ネットワーク遅延が大きい場合、コンテンツの取得に時間がかかります。 ; 2. リソースの読み込み時間が長い場合、リソースのサイズが大きい場合、またはサーバーの応答時間が長い場合、読み込み速度はより明らかに遅くなります; 3. 読み込みシーケンス、等

iframe の data-id は何を意味しますか? iframe の data-id は何を意味しますか? Aug 28, 2023 pm 02:25 PM

iframe の data-id は、特定の要素の識別子を格納するために HTML タグで使用されるカスタム属性を指します。 data-id 属性を使用すると、iframe 要素に一意の識別子を追加して、JavaScript で操作およびアクセスできるようにすることができます。 data-id 属性の命名は、特定のニーズに応じてカスタマイズできますが、一意性と読みやすさを確保するために、通常はいくつかの命名規則に従います。 data-id 属性を使用して、特定の iframe を識別および操作することもできます。

Microsoft: Outlook エラーにより、アクセスするたびに「TokenFactoryIframe」ファイルがダウンロードされる Microsoft: Outlook エラーにより、アクセスするたびに「TokenFactoryIframe」ファイルがダウンロードされる Apr 19, 2023 am 08:25 AM

ユーザーが Safari ブラウザを通じて電子メール サービスにアクセスすると、Microsoft Outlook は macOS 上に「TokenFactoryIframe」と呼ばれる謎のファイルをダウンロードします。この問題は現在、Outlook がアクセスするたびにダウンロードする「TokenFactoryIframe」ファイルを発見したユーザーによって広く報告されています。 Outlook は、数秒ごと、または少なくとも Apple プラットフォーム上の Outlook にアクセスするたびに、この謎のファイルをダウンロードします。私たちの調査結果によると、これは Outlook に投稿されたサーバー側の誤った更新によって引き起こされる問題のようであり、Safari や macOS とは関係がありません。 Microsoft のコピー

golang 関数で新しい関数を動的に作成するためのヒント golang 関数で新しい関数を動的に作成するためのヒント Apr 25, 2024 pm 02:39 PM

Go 言語は、クロージャとリフレクションという 2 つの動的関数作成テクノロジを提供します。クロージャを使用すると、クロージャ スコープ内の変数にアクセスでき、リフレクションでは FuncOf 関数を使用して新しい関数を作成できます。これらのテクノロジーは、HTTP ルーターのカスタマイズ、高度にカスタマイズ可能なシステムの実装、プラグイン可能なコンポーネントの構築に役立ちます。

iframe に代わるテクノロジーは何ですか iframe に代わるテクノロジーは何ですか Aug 24, 2023 pm 01:53 PM

iframe を置き換えることができるテクノロジには、Ajax、JavaScript ライブラリまたはフレームワーク、Web コンポーネント テクノロジ、フロントエンド ルーティング、サーバー側レンダリングなどがあります。詳細な紹介: 1. Ajax は、動的な Web ページを作成するために使用されるテクノロジです。ページ全体を更新することなく、バックグラウンドでサーバーとデータをやり取りすることでページの非同期更新を実現 Ajaxを使用することでより柔軟にコンテンツを読み込んで表示できるほか、他のページを埋め込むためにiframeを使用する必要もありません 2. JavaScriptライブラリまたは React などのフレームワーク。

iframeの読み込みイベントとは何ですか? iframeの読み込みイベントとは何ですか? Aug 28, 2023 pm 01:55 PM

iframe の読み込みイベントには、onload イベント、onreadystatechange イベント、onbeforeunload イベント、onerror イベント、onabort イベントなどが含まれます。詳細説明: 1. onload イベント、iframe のロード後に実行される JavaScript コードを指定、2. onreadystatechange イベント、iframe の状態が変化したときに実行される JavaScript コードを指定、など。

Python での iframe とは何ですか? Python での iframe とは何ですか? Aug 25, 2023 pm 03:24 PM

Python の iframe は、Web ページに別の Web ページまたはドキュメントを埋め込むために使用される HTML タグです。 Python では、さまざまなライブラリとフレームワークを使用して iframe を処理および操作できます。その中で最も一般的に使用されるのは BeautifulSoup ライブラリで、Web ページから iframe のコンテンツを簡単に抽出して操作および処理できます。 iframe の処理方法を知ることは、Web 開発とデータ スクレイピングの両方に非常に役立ちます。

See all articles