2

jQueryダイアログを作成しようとしている大量のHTMLを含むテーブルがあります。このプロセスは非常に遅く (IE では約 8 秒)、受け入れられません。通常、ダイアログを作成するのは非常に高速ですが、大量のマークアップでは明らかにそうではありません。

パフォーマンスの問題の一部の理由は、このような大量の HTML では遅い DOM の最後にダイアログを作成するセクションを削除して追加することだと理解しています。

モーダルに必要なマークアップの一部を手動で作成し、jQuery UI をだまして HTML などを動かさないようにすることで、プロセスを高速化する方法はありますか? 私はすでに試しました:

  • モーダルのサイズを変更できないようにする
  • モーダルを動かせないようにする
  • テーブルを別のものにラップする

jQuery UI マークアップは別の場所で使用しており、適切なスタイルにすでに時間を費やしているため、引き続き使用したいと考えています。ありがとう!

問題を示す非常に簡単な例を次に示します。

http://johnculviner.com/modaltest.html

4

3 に答える 3

2

charlietflからのアドバイスで見つけた最善の解決策を思いついた。ここに投稿しました:http://johnculviner.com/a-jquery-ui-dialog-open-performance-issue-and-how-to-fix-it/

于 2012-10-16T05:38:39.410 に答える
1

考えられる提案は次のとおりです。

1.) ~20 行のダイアログ HTML テーブルを作成します。2.) ドキュメントの準備ができたら、ダイアログ ウィジェットとダイアログ クリック ハンドラを作成します。3.) document.ready の外で、残りのテーブル行を追加する自己呼び出し関数を作成します。

これは、jsfiddleでこのアプローチを使用して作成したデモです

于 2012-06-18T03:17:37.183 に答える
0

幅: $(window).width()
高さ: $(window).height()

ダイアログの高さと幅を現在のビューポートの幅に設定します。読み込みがはるかに高速であることがわかります。

これは、ダイアログの幅を静的に設定し、ダイアログが読み込まれるときに、コンテンツをダイアログのサイズに圧縮する必要があり、時間がかかるためです。

于 2013-12-10T10:10:45.317 に答える