web-dev-qa-db-ja.com

ジャンププログレスバーまたは実行中のプロセスインジケーター?

プロセスを実行している間、プロセスがどこまで進んだか、まだいくら残っているかを知ることができるように、完了するための事前定義されたステップ数でプロセスを開発しています。

私のプロセスはツリーモードで何らかの方法で実行されますが、各ブランチには同じ数のノードがありますが、すべてのブランチが結果につながるわけではありません。つまり、プロセスはジャンクションを持つノードに戻り、他のブランチを試行します。

これは、私のブランチの長さが100ノードである場合、プロセスがノード75に到達するときに行き止まりを見つけてノード50に戻り、そのジャンクションからのブランチを続行する可能性があることを意味します。

質問

私のプロセスはその実行ポイントを定義できるため、代わりに実行インジケーターまたはの代わりにプログレスバーを表示します不明確な進行状況バーは、ユーザーにまったくフィードバックを提供しません。

ジャンプバックプログレスバーは間違っており、まったく使用すべきではありませんか?

追加データ

各進行ステップは、範囲全体の1日です。毎日行われる複雑な計算がありますが、プロセスは次のように機能します。

  1. 翌日かかります(最初のステップの最初のもの)
  2. 計算をする

    1. 計算が成功すると、すべての接合点がマークされます。
    2. 計算が失敗すると、最初のジャンクションポイントが見つかるまで何日も前に戻り、そのポイントから続行します。
  3. 日がなくなるまでステップ1に進みます。

このプロセスから、ジャンクションの数ではなく、計算を行う日数のみを決定できることがわかります。ジャンクションの数は、前の手順で取得したパスと同様に、毎日に大きく依存しているためです。

それが、YのX日を計算する計算の観点からプログレスバーをインクリメントすることにした理由です。ジャンクションに戻ると、新しい計算を開始する前に数日前に戻ることができます...したがって、ジャンプして戻る進行状況バー。

可能な解決策

現在計算されている(すべての)日と、現在までに完全にバックアップされた日数の定量的な情報を含む、不確定な進行状況バー(回転ゲージよりも優れている可能性があります)を表示できます。

これはユーザーにとって意味がありますか?他の数字を表示する必要がありますか?

このような進行状況バーは静的コンテンツと同じであるため、不確定な進行状況バー以外に何かが必要だと思います。変わりません。したがって、何かが起こっているというユーザーへの実際のフィードバックは提供されません...

5
Robert Koritnik

認知科学には私たちは同じものの利益を感じるよりもはるかに多くの損失を感じるの原則があります。ですから、あなたに10%の進歩を与え、それから10%の進歩を奪うなら、人間の観点から、数学が教えてくれるところよりも-20%に近いです。

上記の認知科学の側面に加えて、人々を混乱させるようなことをしないようにすべきです。バーが88%で、現在は70%である場合、それは意味をなさず、confusionが追加されます。

さらに、それはあなたの88%が実際には88%ではなかったことを意味します。これは、あなたが言う他のことtrustに影響を与える可能性があります。

進行中のノードはおそらくロールバックする必要がなくなったと思われます。これらのノードに到達したときにのみ、進行状況を増分できます。これにより、進行状況をロールバックする必要がなくなります。

しかし、あなたは必要プログレスバーでさえありますか?進捗状況を人々に知らせることで、UXに何を追加しますか? (私は技術番号の人でデータが好きなので、私はよくそれらを好きですが、それはそれを必要としません)。アプリケーションによっては、UXに多くの情報を追加できますが、必要な情報は、何かが読み込まれていることだけです。その場合は、単純に読み込みアニメーションを使用できます。何かのようなもの:

enter image description here

編集:あなたが説明していることから、何かがどのくらいかかるかわからないので、進行状況を示すことはできません。あなたができることは、別のノードを処理するたびに単純なカウンターを表示して、誰かがプロセスがまだ実行中でスタックしていないことを確認できるようにすることです。彼らは、「155ノードが処理された」のようなもので154から155に進行するのを見ることができました(処理されたノードが彼らにとって何かを意味すると仮定します)。

6
JohnGB

一般に、プログレスバーを元に戻すのは良い考えではなく、避けるべきです。すべてのノードを100%にして、行き止まりになっている場合はいくつかの手順をスキップして、進行中のジャンプに進むことをお勧めします。この方法では、進行はスムーズではありませんが、ユーザーは、何かがすでに実行されており、再度計算されないことが保証されます。

ジャンプの進行が許容される唯一の方法は、ユーザーが計算モデルを完全に理解し、ジャンプバックできる理由を知っている場合です。ただし、この場合でも、他に対策がない場合は、前に進んだだけのもの、たとえば、すでに試みられた試行の量を表示する別の進行状況、または費やされた時間などがあるはずです。

2
Nikita Prokopov

これは、何を処理しているか、通常はどれだけ時間がかかるかに大きく依存します。

短時間(10〜30秒以下)かかる場合は、予想されるノード数に2を掛けて、通常のようにプログレスバーを増やすだけです。 (基本的には、上位50%を「バッファ時間」として使用します)。これはあなたの通常の仕事量と標準的な占いに依存します。

それより長い時間がかかる場合(30秒以上)、カウンターを増やし(Yノードの合計からXノードをスキャンし)、Y番号が最悪のシナリオであり、仕事は早く終わるかもしれません。

進行状況レポーターが本当に重要な場合は、実際のテスト済みの数値を使用して、進行状況の量と予想される残りの作業量の両方を組み合わせて使用​​できます。

1
Barfieldmv

進行状況バーは視覚的には見栄えがよいですが、場合によっては、2つの値を数値で報告し、更新速度を上げて簡単に読み取れるようにする方が便利な場合があります。

1. Amount of work done.
2. Estimated total amount of work that will be necessary.

作業の総量の最初の見積もりが不正確であることが判明した場合、上記の2番目の量は大幅に増減する可能性があり、それによって、完了した作業の割合の見積もりに影響が及ぶ可能性があります。一方、画面を見て数字を見る人は、プログレスバーを見るだけの人よりも、何が進んでいるのかを知ることができます。特に、プロセスを数回行った人が最初の過小評価は、プロセスの特定の時点で修正されます。推定総作業量が5倍に増加したときにプロセスが80%完了したように見える場合、単純な進行状況バーでは、作業が同じ継続レートで実行されていることを示す方法はなく、推定総作業量のみです。は変わった。しかし、数値を見ると、誰かが推定作業量の変化に気づき、何が起こっているのかをよりよく理解することができます。

0
supercat