web-dev-qa-db-ja.com

遅いシステムで使いやすさを維持するにはどうすればよいですか?

明らかに、肯定的なUXの大部分は、高速で応答性の高いデザインです。私が使用しているソフトウェア(Electronic Medical Records)は、標準以下のデバイス(たとえば、古代のデスクトップPC)や、ネットワークが過負荷になっている場所でデータがすぐに表示されない場合に使用されることがあります。

面白い「ローディング」インジケーター(たとえば、死の風車、砂時計など)以外に、ソフトウェアの処理が遅い状況を計画または適応するための適切なUI/UX戦略はありますか?

8
Andrew Shipe

可能であれば、 非同期プロセス は、遅い部分が何であるかに応じて素晴らしいものになる可能性があります。アクション間のシステムのすべての使用を停止するのではなく、クライアント側GUIを「ライブ」に保つことができる場合、システムははるかに速く感じられ、苛立ちを少なくすることができます。

例として、私は最近、応答性の高いUIを必要としますが、データを操作する前に遅い(約1秒)更新プロセスを完了する必要があるデータ駆動型アプリケーションを構築しました。

ただし、クライアント側のコントロールは実際にはデータに依存していませんでした。私がしたことは、バックグラウンドプロセスの実行中に完全に機能するクライアント側GUIを提示することでした。これにより、ユーザーはシステムを使用してクエリを実際に作成する前にクエリを作成できます。ほとんどの場合、ユーザーはバックグラウンドタスクが完了する前にクエリを開始できません。それは瞬時です!その他の場合、ユーザーはバックグラウンドプロセスが完了するまで待つ必要があります。

システムがまだ処理している間、ユーザーのアクションを禁止しないので、システムが速く見える。これは理想的で、UIの感触をmuch応答性を高めますが、常に可能であるとは限りません。ユーザーが競合するタスクを開始できないようにしてください。ただし、バックグラウンドプロセスが完了するのを待つ間に、ユーザーが無関係なアクション([ヘルプ]メニューを表示するなど)を実行したい場合は、それらを許可することもできます。

これは、ユーザーがデータをロードする前にロードする必要がある場合何でも機能しませんが、ロードできるものに注意してください非同期に。データの3つのビューをロードする場合、一度に1つずつロードすると(個別のロードインジケーターを使用)、合計実行時間が同じであっても、3つすべてを同時にロードするよりも応答性がはるかによくなります。

10
Ben Brocka

意味のあるものにするために、部分的なデータをユーザーに返す方法はありますか?

たとえば、患者の病歴を返す場合は、最初に最新のデータ、または最も要求されたデータ(それが何であれ)を返します。ユーザーは、これが実際に必要なデータであるかどうかをすばやく確認し、転送を中止する(そうでない場合)か、待機する価値があることを知ることができます。ただし、これを実現するには、データを再配置する必要がある場合があります。

類推は、最もぼやけたバージョンが最初に返され、その後徐々に詳細が塗りつぶされるプログレッシブイメージの場合です。イメージが必要なイメージかどうかはすぐにわかります。

3
ChrisF

最終的にロードが完了したときに、(オプションの)オーディオプロンプトを生成できますか?

少なくともその方法で、ユーザーは画面(または画面上のウィンドウ)を監視する必要なく、他のことを実行できます。

2
PhillipW

ここでは、4つの戦略が役立つと思います。

  1. システムがハングするだけでなく、フィードバックを提供することを確認してください。
  2. 可能な場合はデータをプリロードします。多くの場合、ユーザーの次のステップを正確に予測できます
  3. アプリが使用されていないとき(つまり、アイドル時または使用されていないとき)にデータをプリロードしてキャッシュする
  4. データをバッチでロードし、何がロードされているかを示します。
1
Rossul Design