Реалистичные оценки времени для индикаторов выполнения и т. Д.

вы пробовали этот?

$(document).ready(function(){
    setInterval(function(){
        $('.live-stream ul').each(function(){
            $(this).load('tx.php').fadeIn('1000');
        });
    }, 1000);
});

hmmm, а как насчет этого

$(function(){
//Fade in all objects.
var wrapper = $("live-stream ul");
$(wrapper).hide();

function fadeInAll(elem, fadeInTime, timeBetween)
{
    for(i=0; i<elem.size(); i++)
    {
        $(elem[i]).delay(i*(timeBetween+fadeInTime)).fadeIn(fadeInTime);    
    }
}

fadeInAll($(wrapper), 1000, 500);

});
16
задан f3lix 27 March 2009 в 14:15
поделиться

7 ответов

В то время как старшекурсник, Julian Missig и я выполнили эксперимент, мало чем отличающийся от Harrison и др. бумага. Как Вы могли бы ожидать для проекта класса, мы действительно не заставили достаточно данных предъявлять сильные претензии, за исключением того, что для 5-секундного интервала, не показывая индикатора выполнения, как на самом деле воспринимали, был короче.

Так, если задача, вероятно, возьмет короче, чем говорят 10 секунд, лучше не показать индикатор выполнения вообще. Но это вовсе не значит то, что Вы не должны показывать обратную связь, но индикатор выполнения, вероятно, просто заставит ее казаться медленнее.

Если Вам интересно, у Julian есть бумага и плакат на его сайте.

8
ответ дан 30 November 2019 в 21:11
поделиться

Слава Богу я не единственный!

Я не знаю о библиотеке, которая обрабатывает оценку, но я могу лично ручаться за Ваши профильные идеи. Я когда-то реализовал индикатор выполнения, который использовался для создания отчетов о ходе долгой, сложной операции файла (несколько маленьких файлов читались, обрабатывались и затем объединились в больший файл). У меня было программное обеспечение, отслеживают время, которое оно заняло для чтений, записей и обработки, и затем скорректировало индикатор выполнения соответственно. После того, как программа была запущена пару раз, индикатор выполнения переместится гладкий как шелк. Никакие паузы и никакие быстрые вспышки.

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

7
ответ дан 30 November 2019 в 21:11
поделиться

Я не думаю, что проблема состоит в том, что они оценивают количество шагов так, поскольку случается так, что часто неправильное определение "шага" используется. В Вашем примере установщика, идущего от 0 до 9% за 10 секунд и затем час для остальных, я видел, что происходят, когда программист решил считать количество файлов для копирования, не число байтов.

Скажите, что было 10 файлов, 9 из них были 5K, каждый (readme, лицензия, значок, и т.д.) и последнее был ISO на 2 ГБ, ну, в общем, первые 9 скопируют действительно быстро, и последнее было бы медленным! Подсчет файлов был неправильной вещью рассчитать, должен был считать байты. Проблема, если Вы хотите считать байты затем, необходимо реализовать собственную стандартную программу копии, таким образом, можно обеспечить обновления статуса во время копии большого файла. Действительно стоит того для реализации собственной стандартной программы копии?

Другая проблема состоит в том, что установка (как много других вещей) составлена из стопок стандартных программ, которые могут быть довольно глубокими. Эти стандартные программы могут сделать много вещей, но они - вероятно, универсальные стандартные программы и не имеют ничего в них, которое способно к обновлению некоторого метра прогресса в намного более высоком уровне. Необходимо было бы повторно реализовать много общих стандартных программ для получения информации значительного прогресса.

Что касается устойчивого средства оценки, я думаю, что это было бы действительно твердо. Конкретные шаги могли быть определены в файле конфигурации, но у Вас должны будут быть обновления прогресса от каждой части процесса установки. Кроме того, время, чтобы сделать эти вещи, очевидно, варьировались бы с машины на машину, таким образом, Вы, вероятно, будете путем прочь так или иначе. Конечно, после того как Вы сделали установку на определенной машине, Вы могли, вероятно, оценить установку на той машине в следующий раз.;-)

4
ответ дан 30 November 2019 в 21:11
поделиться

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

Поместите индикатор выполнения рядом с задачей, если она занимает больше времени, чем 10 секунд, таким образом, они видят, что работа делается, и они не прерывают ее слишком рано.

Загрузите обновление
Прекратите выполнять процессы
Программное обеспечение Update
Программное обеспечение Configure
Программа перезапуска

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

Для более коротких процессов не нужен индикатор выполнения, даже не отображайтесь один ни на каком процессе до, который процесс взял 10 секунд или больше. Тем путем пользователь в быстрой системе просто видит галочку на каждой задаче, и в медленной системе пользователь видит галочки, и если это остается на задаче 'слишком долго', они получают индикатор выполнения с на самом деле полезной информацией.

И индикатор выполнения не делает обещаний о том, сколько времени более поздние задачи возьмут.

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

Вещь об индикаторах выполнения, они предназначены для перемещения линейно. Когда они переходят и заикаются, это очень печально для пользователя - они на самом деле менее полезны и дают неправильную информацию в этом случае.

Выберите правильный инструмент для задания. Слишком много раз индикатор выполнения выбран, когда это - на самом деле неправильный инструмент.

- Adam

3
ответ дан 30 November 2019 в 21:11
поделиться

Как Вы говорите, у Вас может быть 100 шагов, но каждый из тех шагов займет различное количество времени в зависимости от того, что они делают.

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

  • Какие monitorable метрики применяются (скорость копии, распаковывая скорость, и т.д.)?
  • Что такое средний уровень худшего случая для того процесса?

Затем необходимо создать список того, что Вы собираетесь быть выполнением для целого задания, например:

  1. Распаковка 100meg файл (группа: распаковка, value:100)
  2. Копирование 120megs (группа: копия, value:120)
  3. Устанавливание значений реестра (группа: реестр, value:25)
  4. Вымойтесь (группа: удаление, value:100)

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

Microsoft потребовалось десятилетие для разбираний в нем, так не слишком беспокойтесь, если это не работает сначала =)

2
ответ дан 30 November 2019 в 21:11
поделиться

Другой (и намного более простой путь) должен просто заполнить оценку и пользовательское восприятие.

Большинство панелей прогрессии там больше для скорости отклика UI, чем прогноз продолжительности: у пользователя должна быть обратная связь, подтверждающая, что программа не останавливается - но не заботится так очень во время завершения.

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

Для той же задачи, если это переходит к 50% через 30 секунд, продолжает идти до 60% - и затем волшебно переходит к 100% - я удивляюсь, но не раздражаюсь.

Если задача действительно коротка или абсолютно непредсказуема, некоторые анимированные работы цикла также (значок загрузки браузера, iPhone ожидают анимация, и т.д....).

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

2
ответ дан 30 November 2019 в 21:11
поделиться

Я использую DREJ , чтобы выполнить нелинейную регрессию методом наименьших квадратов для исторического прогресса. Это работает довольно хорошо.

Я использую таблицу базы данных для хранения моих исторических данных. Я перестраиваю свою функцию оценки на основе последних 100 записей в таблице.

У меня есть аннотации к давно используемым методам определения переменной, определяющей скорость.

YMMV, но в следующий раз оценка учитывает это. .

2
ответ дан 30 November 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: