2009-04-02 21 views
1

一般的な「読み込み中...」またはアニメーション化されたgifの代わりに、何が起こっているのかをより詳しく説明したいと思います。 (アプリケーションのスプラッシュ画面のようなもの)。しかし、Jqueryのドキュメンテーションでは、XMLHttpRequest状態の変更を取得する方法がないようです。ケース= 2ディスプレイはXMLHttpRequest状態を取得するJquery ajax

"近づいて" いる場合場合= 1、ディスプレイ

"起動" 場合、私はやりたい何

この

のようなものであるかの場合= 3ディスプレイ「Iほとんどそこにm」は」

ケース= 4の表示内容

アム私は何かを見下ろすか、私はjQueryのAJAXメソッドを放棄し、自分を書くべきか?

答えて

0

いくつかの時間間隔でWebサービスをポーリングし、アプリケーションに適切と思われるもの(提示したメッセージなど)を返し、進行状況インジケータを更新する必要があります。プロセスは二つ折りです:最初のステップは、実際に実行する必要がある操作を開始することです。第2のステップは、操作が完了したかどうかを確認するためにサーバーを常にポーリングすることです。

ただし、サーバーに現在の操作ステータスを何らかの形で保存する必要があります。どのテクノロジーを使用しているのか分かりませんので、選択したフレームワークが提供するものを使用するように指示するだけですが、プロセス状態が永続化できる変数に設定されていることを確認してください(HTTPはステートレスです)。例えば、セッション変数に格納されます。実行中のプロセスとポーリング方法の間でこの値を同期させるのは難しい場合があります。

このようなスプラッシュ画面は、デスクトップアプリケーションやWebアプリケーションでは、処理がクライアント上で実行されるときに、全体的に使用されます。非同期に実行しているメソッドがサーバーにある場合、更新の進捗状況を確認することをお勧めします。このような進捗インジケータは、アセット(画像やその他のファイルなど)を読み込んでいるときに、現在読み込まれているアイテム/サイズと合計サイズなどを数えることができます。処理操作がサーバー上で実行されるかクライアント上で実行されるかにかかわらず、それは数えられる必要があります。

Webアプリケーションにもう1つの鈍い「ロード中...」インジケーターが表示されないようにするには、配列からいくつかの面白い引用符や他のテキストをランダムに表示します。

ベストソリューション - リクエストの処理に要する時間を最小限に抑えます。 :)

+0

大きなアドバイスをいただきありがとうございます。あなたは私が本当に考えなかったものに触れました。それは投票して転売するのにかかる時間です。どうもありがとうございました。 – Scott

+0

問題ありません。私が助けることができてうれしいです。 また、サーバーのポーリング中もリソースを消費しているということを忘れています。サーバーが何かを処理している間に、多くの「不要な」呼び出しが発生します。 StackOverflowほど多くのユーザーがいると考えてください。 :) –