私は2つのasp.netページを持ち、ページ1からページ2に移動するのに何度かかかります。 (ページ2はデータへのアクセスを行います)。したがって、Page2の読み込みが完了している間は、読み込み中のページまたはインジケータを表示します。asp.netページのjQueryローディングページ/インジケータ
jQueryでこれを行う方法はありますか?
ありがとうございました。
私は2つのasp.netページを持ち、ページ1からページ2に移動するのに何度かかかります。 (ページ2はデータへのアクセスを行います)。したがって、Page2の読み込みが完了している間は、読み込み中のページまたはインジケータを表示します。asp.netページのjQueryローディングページ/インジケータ
jQueryでこれを行う方法はありますか?
ありがとうございました。
データアクセスを実行してメモリに格納するページを呼び出します(たとえば、Memcachedを使用)。
非常に長いプロセスではない(タイムアウトしない)場合は、getJSONを使用してサーバーに電話をかけることができます。このスクリプトはデータベースにアクセスし、その結果をキャッシュに格納することができます。処理が終了すると、それを呼び出すために必要なもの(つまり、memcachedに保存したキー)を含むJSON応答が出力されます。応答が返ってくると、ページにリダイレクト(キーを渡す)し、ページから必要なデータをキャッシュから読み込みます。
サーバーの処理にどのようなコードが含まれているのかわからないので、ASP .NET MVCで行うことの例を挙げておきます。
のJavaScript(クリックイベントか何かで):
$("#loadingIndicator").show();
$.getJSON('/DataAccess', function(data) {
window.location.href = '/CacheReader/' + data.Key;
});
サーバー:
// Returns the JSON with the key
public ActionResult DataAccess() {
var row = GetRow();
var key = Guid.NewGuid();
Cache.Store(key, row);
return new Json(new { Key = key });
}
// Using the key, get the data from cache and output nicely.
public ActionResult CacheReader(string key) {
var cachedRow = Cache.Read(key);
return new View(cachedRow);
}
サーバのコードは、おそらくいくつかのエラーを持っていますが、それがうまくいけば私のポイント伝わります。このコードは、JSONが応答するまで(すべてがキャッシュにあることを意味する)、ページにローディングインジケータを表示します。その後、正しいページにリダイレクトされます。インジケータを消してタイムアウト/エラー時に 'Oops'メッセージを表示するようなものを用意することは良い考えです。ちょうどそのユーザーは永遠に待つことはありません。
サーバー側の負荷であるため、Ajaxコールの権利ではありません。 – kobe
実際のページの再読み込みではなく、Ajax呼び出しを使用する場合のみです。 –