-1

ページの読み込みに時間のかかる作業を行うページがあります(実際にはそれだけです)。私はユーザーにまともなメッセージを提示し、プロセスが完了したらそれを実際の結果に置き換えたいと思います。

私が試みるすべてのことは、長いプロセスが終了した後にUIをレンダリングするようにしますが、これは役に立ちません。UpdatePanelを使用してページをレンダリングしてから、クライアントから更新をトリガーしようとしましたが、どちらも機能しません。

誰かが私にこれを行う方法の手がかりを与えることができますか?

ありがとう

4

3 に答える 3

3

次のことをお勧めします。

  1. 読み込み中に表示したいものだけを表示する新しいページを作成します。読み込み中のグラフィックまたはその他。
  2. AJAX 経由で現在のページを呼び出して、ページ 1 に戻すsuccessfailure、戻したいものを何でも戻します。
  3. ajax 呼び出しが返されたら、読み込みアイコンまたは html を成功したグラフィックに置き換えることができます。

HTML ページ 1: <div id="content"><img src="images/loading.png" alt="loading" /></div>

jQuery:

$.ajax({
    type: "GET",
    timeout: 30000,  // set accordingly
    url: "/some/url", // this is the page that will do all the work
    beforeSend: function() {
      // do some stuff
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
      alert("An error has occurred making the request: " + errorThrown); // if there was an issue
    }, 
    success: function() {
    $('#content').html('Success!!'); // change icon or what you need to do.
    }
    });

UI でコードを正しくフォーマットできません。Jquery ajax リファレンス: http://api.jquery.com/jQuery.ajax/

于 2012-05-22T20:37:19.300 に答える
0

ASP.NET WebForms を使用している場合は、UpdatePanel と UpdateProgress を使用して、何かの読み込み中に画像を表示できます。updateprogress コントロールを updatepanel コントロールにポイントするだけです。UpdateProgress には、メイン コンテンツとコントロールのロード イメージと更新パネルが含まれます。ただし、UpdateProgress と UpdatePanel は Microsoft によって作成された醜いツールです。真の AJAX 呼び出しで jQuery を使用することを強くお勧めします (ただし、より多くの作業が必要になります)。

于 2012-05-22T22:51:49.490 に答える
0

jQuery BlockUI プラグインを使用できます。ready handlerで、ブロック、処理、ブロック解除を行います。

クライアントに大量のデータが流れている場合、ready ハンドラが開始してページをブロックする前に不快な時間が発生する可能性があるため、<div>ページをカバーする を用意するという別の戦略があります (「しばらくお待ちください。読み込み中です。 " メッセージ) を使用して、ready ハンドラーの最後に非表示にします。

于 2012-05-22T20:49:19.733 に答える