Прогресс — это механизм информирования пользователя при долгих операциях (отправки формы или групповой операции). Долгая операция делится на условные шаги, и сопровождается комментариями.
Пример из orion:
Получение прогресса
Чтобы запустить механизм прогресса нужно к запросу добавить параметр progressid, значение параметра необходимо сгенерировать — оно должно быть уникальным для сессии, может состоять из цифр и/или букв (подойдет timestamp).
Для получения прогресса нужно вызвать функцию progress.get c параметром elid равный отправленному progressid.
В ответ панель сформирует XML следующего вида:
XML:
<doc ...>
<action>product.install</action>
<start>1376013950</start>
<last>1376013971</last>
<now>1376013974</now>
<steps>6</steps>
<done>4</done>
<comment>Выполняю кэширование доступных пакетов</comment>
<tparams>
...
</tparams>
</doc>
Для вычисления процентов используются значения элементов:
- steps — общее количество шагов;
- done — количество выполненных шагов.
Комментарий берется из элемента comment.
Элементы:
- start содержит время начало операции;
- last — время завершения предыдущего шага;
- now — время текущего запроса.
Для отображения прогресса используется функция progress.set.
Параметры:
- elid — обязательный параметр. Соответствует значению authid:progressid, например: 7d1d70ae434b1c55f0323921:12312322, где 7d1d70ae434b1c55f0323921 — authid, 12312322 — progressid;
- authid — id сессии клиента (значение параметра billmgrses5 в cookies клиента);
- progressid — выставленный id прогресса (приходит параметром, если для формы выставлен атрибут progress=yes);
- steps — добавляет n количество шагов, которые необходимо пройти;
- done — прибавляет к done указанное значение. Когда done == steps, прогресс считается законченным;
- msg — отображаемый комментарий.