2

長時間(> 2分)のサーバー側タスクを開始するWebページを改善する方法を探しています。ページの現在のバージョンは、タスクの全期間を計測するだけであり、ユーザーを非常に苛立たせる可能性があります。

ユーザーエクスペリエンスを向上させる方法については、すでにいくつかのアイデアがありますが、それらはすべて、ある程度AJAXの使用を伴います。このプロジェクトでの以前の経験から、すべてのユーザーがJavaScriptを有効または使用できるわけではないことを知っています。

サーバー側のプロセスがすでに可能な限り最適化されていると仮定すると、すべてのユーザーのエクスペリエンスを可能な限り向上させるために他に何ができるでしょうか。

4

2 に答える 2

2

長時間実行されているサーバープロセスを帯域外に移動します。

ユーザーがタスクを開始すると、アプリケーションはある種のキューにメッセージを書き込むことができます。これは通常、非常に高速であるため、ユーザーはすぐに制御を取り戻すことができます。メッセージがキューに入れられると、別の特殊なプロセス(サービス、スケジュールされたタスク、cronジョブなど)がメッセージを取得し、最初の機会に適切なタスクを実行します。

javascriptが有効になっているユーザーの場合、タイマーを設定してAJAXを介してタスクのステータスを確認し、タスクが終了したときにアラートを出すことができます。

保留中のタスクと完了したタスクをページの共通の表示された場所に表示することで、JavaScript以外のユーザーに情報を提供し続けることができます。もちろん、その恩恵を受けるにはブラウジングを続ける必要があるため、ユーザーがタスクの終了を待っている場合は、ページをときどき更新する必要があることも明確にする必要があります。

于 2010-11-02T14:20:44.800 に答える
1
  • データベース(またはメモリ内オブジェクト)にテーブルを作成する
  • 長時間実行されるタスクは、このテーブル(オブジェクト)の進行状況を更新します
  • Webページには、このテーブル(またはオブジェクト)のデータが表示されます。ページを更新する方法-それはあなたの選択です。
于 2010-11-02T14:22:54.407 に答える