Отображение завершения в индикаторе выполнения - PullRequest
1 голос
/ 08 октября 2008

В этой конкретной ситуации есть 9 автоматизированных шагов в процессе, которые занимают различную продолжительность. В настоящее время у нас есть число, показывающее процент в центре индикатора выполнения, но оно страдает от общей проблемы остановки и начала гонки: до 33%, долгое время ожидания, до 55%, ожидание еще более длительного , затем отделка.

Какой лучший способ представить это пользователю? Должны ли мы удалить число, удалить весь индикатор выполнения в пользу анимации круга типа ajax, добавить описательный текст для девяти шагов и отметить их или оставить все как есть? Что ты думаешь?

Ответы [ 6 ]

3 голосов
/ 08 октября 2008

Если это действительно занимает много времени, анимация типа AJAX, вероятно, не очень хорошая идея. Я бы пошел с контрольным списком предметов.

2 голосов
/ 08 октября 2008

Индикатор выполнения служит для подтверждения пользователю, что что-то происходит. Если у вас нет более подробного списка шагов, я бы порекомендовал «подделать» их.

Основным решением было бы запустить таймер и медленно увеличивать прогресс, ограничивая его значением следующего логического шага. Если эти шаги занимают разное время, вы можете вручную настроить значение дельты для каждого такта таймера в зависимости от того, на каком этапе вы находитесь.

Однако, лучшее решение (когда-то я реализовал его таким образом, но я не могу опубликовать код :)), было бы медленно уменьшать дельту по мере продолжения шага - так что он никогда не дойдет до следующего шага. Затем наступает следующий шаг, у вас есть хороший прыжок, и цикл повторяется.

1 голос
/ 04 января 2009

Чтобы расширить ответ Cadet Pirx, вот код WinForms C #. Вам понадобится новый UserControl. Поместите элемент управления ProgressBar, который называется inner. Добавьте следующий код:

public partial class ZenoProgressBar : UserControl
{
    private const int DEFAULT_FACTOR_VALUE = 10;
    private const int DEFAULT_MAXIMUM_VALUE = 100;

    public ZenoProgressBar()
    {
        InitializeComponent();

        Maximum = DEFAULT_MAXIMUM_VALUE;
        Factor = DEFAULT_FACTOR_VALUE;
    }

    /// <summary>
    /// The "speed" of the progress bar. While it will never get to
    /// the end, it uses this number to decide how much further to
    /// go each time Increment is called. For example, setting it to
    /// 2 causes half of the remaining distance to be covered.
    /// </summary>
    [DefaultValue(DEFAULT_FACTOR_VALUE)]
    public int Factor { get; set; }

    [DefaultValue(DEFAULT_MAXIMUM_VALUE)]
    public int Maximum { get; set; }

    private void ZenoProgressBar_Load(object sender, EventArgs e)
    {
        inner.Dock = DockStyle.Fill;
    }

    public void Increment()
    {
        inner.Value += (inner.Maximum - inner.Value) / Factor;
    }
}
1 голос
/ 08 октября 2008

Если вам интересно, вот очень интересная статья о восприятии пользователем индикаторов. Заставил меня немного подумать об этом:

http://www.chrisharrison.net/projects/progressbars/

1 голос
/ 08 октября 2008

В некоторых случаях для индикатора выполнения важнее указать, что что-то происходит, чем для того, чтобы он был точным и плавным. Пользователи склонны паниковать, когда прогресс-бары перестают прогрессировать.

Если у вас возникают проблемы с зависанием панели в течение некоторого времени, возможно, лучше заменить ее на общую анимацию, которая убеждает пользователя в том, что что-то происходит, не беспокоясь о том, как далеко продвинется процесс. Или оставьте индикатор выполнения на месте, но добавьте дополнительную анимацию в качестве плацебо.

0 голосов
/ 08 октября 2008

У меня была почти такая же проблема. У нас также было 9 шагов, поэтому планка должна была подняться на 11%, 22%, 33% и т. Д., А некоторые шаги занимали больше времени, чем другие.

Я решил сделать так, чтобы два из более длинных шагов считались двумя, поэтому у нас было 11 шагов, поэтому это было не так очевидно, и скачки не всегда были четными: 9%, 18%, 36%, 45 %, 54%, 72%, 81%, 90%, сделано. Значения шагов всегда были одинаковыми, но, поскольку размер шага не был очевиден, он работал ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...