У меня есть PHP-скрипт, который запускается через вызов AJAX, и иногда это может занять очень много времени (до 30 секунд) для некоторых людей.Чтобы привлечь внимание посетителя, я показываю индикатор хода выполнения процесса, а также перечисляю случайные факты о том, что делает веб-приложение и т. Д. И т. Д.
Для обновления индикатора выполнениячтобы точно показать, насколько далеко процесс находится в%, скрипт записывает в сеанс, в каком «состоянии» находится процесс, «итого» для суммы, которую нужно сделать, и «прогресс», чтобы сказать, сколько он сделал,Во время выполнения этого длинного вызова AJAX на страницу, которая перечисляет эти 3 переменные сеанса, делается еще один отдельный вызов AJAX, который может превратить его в точный индикатор выполнения в JavaScript, и он повторяется каждые 0,5 секунды.
Проблема в том, что для того, чтобы этот второй вызов AJAX мог получить данные сеанса, сеанс должен быть закрыт.Таким образом, в сценарии длины он открывает сеанс, записывает данные, а затем закрывает его.
Есть ли какие-либо существенные потери производительности, вызванные этим?Есть ли лучшая альтернатива, чтобы показать, как далеко находится длинный AJAX-вызов?
РЕДАКТИРОВАТЬ: Я должен был выбирать слова более тщательно.Раньше этот процесс занимал более 30 секунд, и было необходимо показать реальный индикатор выполнения вместо повторяющегося изображения.После изменения алгоритма теперь это занимает в среднем 1-5 секунд, но я бы предположил, что в крайних случаях он может достигать 10 секунд.Он асинхронный, и на странице есть другое содержимое, и они должны выбрать, чтобы начать процесс.Они могут перейти на другие страницы или даже закрыть окно и вернуться позже, чтобы увидеть, что оно закончено.Теперь, когда временной интервал значительно ниже, мне интересно, не ухудшаю ли я его быстродействие, пытаясь показать «истинный» индикатор выполнения или есть ли другая альтернатива для этого.