0

私のアプリケーションには、ユーザーが Excel レポートを生成できるページがあります。この生成は比較的長い場合があります (10 秒から 5 分)。現在、ユーザーが[ Generate ] ボタンをクリックすると、ロード アイコン (待機中のポップアップ) を含むjQuery モーダル パネルが表示されます。

ここで、Excel 生成の現在のステップをグラフィカルに示したいと思います。たとえば、ユーザーがボタンをクリックすると、表示されるモーダル パネルは次のようになります。

+-------------------------------------+
|         ... Please wait ...         |
+-------------------------------------+
|  We are preparing your Excel file.  |
|                                     |
|  >> Finding unicorns in Database.   |
|  2. Reading "Database for dummies"  |
|  3. Downloading the Internet...     |
|  4. Write fake data in Excel file.  |
+-------------------------------------+

数秒後、モーダル パネルは次のようになります。

+-------------------------------------+
|         ... Please wait ...         |
+-------------------------------------+
|  We are preparing your Excel file.  |
|                                     |
|  1. Finding unicorns in Database.   |
|  >> Reading "Database for dummies"  |
|  3. Downloading the Internet...     |
|  4. Write fake data in Excel file.  |
+-------------------------------------+

ユーザーが Excel を使用できるようになるまで続きます。

これを実装する私の考えは、Ajax リクエストでサーバーを定期的にポーリングすることです。次に、サーバーは、ステップのリスト (少し汎用的にするため) とアクティブなステップのリストを含む JSON オブジェクトを返します。次に、このオブジェクトを解析して、ステップのリストを表示/更新します。

jQuery はそれを行うためのすべての要素を提供するため、ここでは技術的な問題は見当たりません。しかし、そのような要件に対応する jQuery プラグインが既に存在する可能性があります。1つ知っていますか?

私が開発しなければならない場合に備えて、推奨事項(避けるべき間違いなど)はありますか?

ありがとう。

4

1 に答える 1

0

これは非常に単純なので、プラグインは必要ありません。先週同様の機能を実行しましたが、ファイルを生成し、クライアントからサーバーに継続的なリクエストを送信してステータスを更新している間に、クライアントに送信するデータをデータベースに保存するだけで済みます。毎秒リクエストを送信できます。サーバーからの応答を待つだけで、応答が完了していない場合は、リクエスト送信関数を何度も呼び出すだけです。

編集:セッションに生成ステータスメッセージを保存することは避けます。なぜなら、私が間違っていなければ、httpリクエスト中にセッションがロックされ、生成を待っている間に他のリクエストも送信したい場合は、アクセスできなくなるからです。セッション。

于 2012-06-26T08:04:54.877 に答える