4

.html()Ajax イベントから応答テキストを取得したら、jQuery メソッドを使用して div コンテンツを変更しています。

時々、より多くの応答データを取得します (html とスクリプトを含み、約 4MB のデータ)。.html()jQueryメソッドを使用して応答データを div コンテンツとして設定するには、さらに時間がかかります。

誰か理由を教えてくれませんか?解決策または代替手段はありますか?

4

1 に答える 1

3

まず、定期的に4MBのHTMLをダウンロードして挿入しても、高速でインタラクティブなアプリケーションにはなりません。これは、ネットワークホッグとメモリホッグになり、パフォーマンスが低下します。

.html()ブラウザがアクセスできるメモリの量以外に、この方法 に技術的な制限はありません。は、特定の制限がない.html()ネイティブプロパティの上にあるシェルです。.innerHTML

4MBのHTMLは、ダウンロードにかなりの時間がかかり、ブラウザが解析するのにかなりの時間がかかります。それはおそらくあなたが見る遅れです。時間はおそらくjQueryとは関係ありません。設定している実際のコンテンツとは関係のない最初のハウスキーピングの後、jQueryは.innerHTMLプロパティを設定するだけで、ブラウザは指定されたHTMLコンテンツの解析を処理します。

ここで、大量のHTML(たとえば、別の4MBのHTMLセット)を置き換える場合、jQueryは古いコンテンツのすべての要素をトラバースし、関連するjQuery状態をクリーンアップする必要があるため、非常に遅くなる可能性があります。削除されようとしている要素。


4MBのHTMLを使用する必要がないように、ページデザイン/アプリデザインを修正する必要があります。

于 2013-03-08T04:42:17.503 に答える