1

jsp(1.jsp)の読み込みボタンをクリックすると、元のjsp(1.jsp)のdiv要素に別のjsp(2.jsp)が読み込まれます。このロードされた div jsp には、構成に時間がかかる (数秒) いくつかの大きなデータ テーブル要素と html 要素があります。この間、jsp の準備が完全に整っていないため、ロード ダイアログまたは待機画面をユーザーに表示すると便利です。次のように jquery modal と jquery show/hide を使用してみました

   $("#loadpage").show();       
   $("#divElement").load("2.jsp");               
   $("#loadpage").hide();

しかし問題は、2.jsp が完全にロードされる前に hide() が呼び出されることです。2.jsp が完全に読み込まれるまで読み込み中の gif を保持する方法????

4

2 に答える 2

2

ロード関数のコールバック関数を使用するだけです

 $("#divElement").load("2.jsp", function () {
     $("#loadpage").hide();
 });

コールバック関数 "complete" コールバックが提供された場合、後処理と HTML 挿入が実行された後に実行されます。コールバックは、jQuery コレクション内の各要素に対して 1 回発生し、これが各 DOM 要素に順番に設定されます。

詳細については、load の JQuery ドキュメントを参照してください。

編集(コメント後):エラーを確認したい場合は、次の方法で関数を実装できます:

function(response, status, xhr) {
    if (status == "error") {
        // Do something on error
    } else {
        $("#loadpage").hide();
    }
}
于 2012-10-31T19:50:14.370 に答える
0

ロードで関数を渡すことができます。2.jsp のダウンロードが完了すると呼び出されます。

  $("#divElement").load("2.jsp", function(){

         // content is loaded
  }); 
于 2012-10-31T19:50:11.110 に答える