0

その要素の1つ(サードパーティのグリッドコンポーネント)をロードする際の長時間実行されるAjaxリクエストを含むページがあります。このAjaxリクエストは、ドキュメントでのreadyイベントの発生を遅らせます。jQuery UIプラグイン(ボタン、dilog)を使用しています。以前は$(document).readyハンドラー内の要素にそれらを適用していましたが、この場合、Ajaxプロセスが終了するまで、純粋でフォーマットされていない醜い要素がたくさん表示されます。リクエストには最大4〜5秒かかる可能性があるため、非常に煩わしいものです。このシナリオの良い解決策は何でしょうか?

リクエストが終了するまで対応する要素を非表示にしてから表示することもできますが、もっと一般的な手法がある場合はそれをお勧めします。

さらに、残念ながら、このコンポーネントをあまり制御できないため、データをいつどのようにロードするかを制御できません。

編集:readyイベントを遅らせるリクエストはもちろんAjaxリクエストではなく、コンポーネントのMVC部分ビューの長い処理です。ただし、ページの他の部分(この領域の「上」)が早く読み込まれるため、問題は依然として存在します。

編集:私はASP.NET MVC3で作業しています。おそらく、いくつかの出力バッファリング技術が役立つでしょう。これにより、要求全体が処理されるまでコンテンツがフラッシュされなくなります(PHPのob_XXX関数など)。

4

2 に答える 2

0

domの準備ができてUIが作成された後、ajaxリクエストを開始するのはどうですか?

于 2013-02-07T19:40:08.303 に答える
0

おそらくサーバー側でより適切な手法が見つかるまで、これらの要素に「display:none」を定義する「hidden-until-ready」という名前の特別なCSSクラスを追加しました。ドキュメントの準備ができたイベントでは、プラグインを適用する直前に1行のjQueryを実行してそれらを表示します。回答ありがとうございます。

于 2013-02-07T20:18:52.597 に答える