ジャバスクリプト?
メタタグの更新?
Response.Redirect (自分自身へ)
Server.Transfer (自分へ)
Ajax 更新パネル?
ジャバスクリプト?
メタタグの更新?
Response.Redirect (自分自身へ)
Server.Transfer (自分へ)
Ajax 更新パネル?
ユーザーに何らかの進捗状況を報告できる場合、私はasxhとforeverフレームのバリエーションを使用して実行する傾向があります。jQueryUIダイアログとjQueryUIプログレスバーを少し追加すると、サーバーで手間のかかる作業を行っている間、ユーザーの注意を引くための優れた方法が得られます。
874204で、この手法を示すサンプルコードをいくつか示しました。
ユーザーに進捗を与えることができない場合でも、私はUIダイアログを使用して、「お待ちください、処理しています...」というメッセージをWebの2ドットに準拠したspinnygifでポップする傾向があります。
オプションを見てみましょう:
ジャバスクリプト?
ユーザーが無効にしない限り、これは正常に機能します。
メタタグの更新?
Javascript メソッドを支持する非推奨のメソッド。ただし、ユーザーが Javascript を無効にしている場合は、バックアップとして使用できます。
Response.Redirect (自分自身へ)
ブラウザはリダイレクト中にユーザーに役立つものを何も表示しないため、これは機能しません。また、ブラウザーは、ユーザーを無限のリダイレクトから保護するために、一定回数のリダイレクト後にリクエストを停止します。
Server.Transfer (自分へ)
サーバー上のコードはブラウザに何も送信せずにループするだけなので、どちらも機能しません。効果は、コード内にループがあるだけの場合と同じです。
Ajax 更新パネル?
ユーザーが Javascript を無効にしていない限り、問題なく動作します。これは基本的に最初のオプションと同じですが、ブラウザにリクエストを行わせるのではなく、Javascript だけがリクエスト自体を行います。
非同期ページに関するこの記事を確認してください。これは、非同期ページと META-REFRESH を含むCodeProjectの例でもあります。
この種の機能のサンプル実装は、ビア ハウス スターター キットhttp://www.asp.net/Downloads/starter-kits/the-beer-house/にあります。
ページ SendingNewsLetter.aspx および SendNewsLetter.aspx が役に立ちます。ただし、これは必要に応じてやり過ぎかもしれません。長時間実行されている操作の進行状況も表示されます。
Ajax を使用して UpdateProgress を表示することをお勧めします。