.html()
Ajax イベントから応答テキストを取得したら、jQuery メソッドを使用して div コンテンツを変更しています。
時々、より多くの応答データを取得します (html とスクリプトを含み、約 4MB のデータ)。.html()
jQueryメソッドを使用して応答データを div コンテンツとして設定するには、さらに時間がかかります。
誰か理由を教えてくれませんか?解決策または代替手段はありますか?
まず、定期的に4MBのHTMLをダウンロードして挿入しても、高速でインタラクティブなアプリケーションにはなりません。これは、ネットワークホッグとメモリホッグになり、パフォーマンスが低下します。
.html()
ブラウザがアクセスできるメモリの量以外に、この方法 に技術的な制限はありません。は、特定の制限がない.html()
ネイティブプロパティの上にあるシェルです。.innerHTML
4MBのHTMLは、ダウンロードにかなりの時間がかかり、ブラウザが解析するのにかなりの時間がかかります。それはおそらくあなたが見る遅れです。時間はおそらくjQueryとは関係ありません。設定している実際のコンテンツとは関係のない最初のハウスキーピングの後、jQueryは.innerHTML
プロパティを設定するだけで、ブラウザは指定されたHTMLコンテンツの解析を処理します。
ここで、大量のHTML(たとえば、別の4MBのHTMLセット)を置き換える場合、jQueryは古いコンテンツのすべての要素をトラバースし、関連するjQuery状態をクリーンアップする必要があるため、非常に遅くなる可能性があります。削除されようとしている要素。
4MBのHTMLを使用する必要がないように、ページデザイン/アプリデザインを修正する必要があります。