Я хочу знать, можно ли показать прогресс ajax с сообщениями из php-скрипта?
Например, у моего backend.php есть 3 шага. Когда я нажимаю на свою кнопку, я хочу:
- to display: 'loading step 1'
- when my backend.php move forward to step 2, display : 'loading step 2'
- when my bakcend.php move forward to step 3, display : 'loading step 3'
В настоящее время мне удается сделать что-то подобное только с несколькими вызовами ajax, когда ajax 1 завершен, мое предупреждение изменяется, и я запускаю ajax 2 ....
Думаю, есть способ сделать это лучше?
Спасибо за помощь.
Может быть, рекурсивная функция, которая вызовет ваш бэкэнд.
Если вы хотите вызывать каждый шаг отдельно, вы можете прослушать конец каждого шага, обновить пользовательский интерфейс, а затем сделать следующий вызов и так далее. Если вы хотите сделать это с помощью одного вызова (типа), подумайте об использовании веб-сокет. Примерно так: stackoverflow.com/q/39768548/863110
Наконец-то мне удается сделать то, что меня устраивает.
Я использую событие, отправленное сервером (SSE), чтобы получать сообщения с сервера, когда я меняю шаг или получаю сообщение об ошибке.
Поскольку я использую только один файл для серверной части, мне удается использовать транзакцию sql.
И чтобы использовать данные публикации из моего от, я использую ajax, храню эти данные внутри сеанса php. Если ajax возвращает успех, я запускаю SSE, в противном случае я все останавливаю.
Есть несколько вариантов, для вас проще всего сохранить результат в файле и прочитать содержимое файла с помощью одного запроса ajax. Если ваш бэкэнд-скрипт обрабатывает, обновите файл, пока фронтенд-скрипт прочитает файл и получит новые значения.