как отправить ответ на ajax, но сохранить процесс php скрипт - PullRequest
1 голос
/ 03 февраля 2020

У меня есть идея для моего проекта, я использую ajax в качестве передней части и laravel в качестве задней части здесь.

например, при обработке изображений.

шаг для обработки изображений: вот так.

  1. загрузка изображений
  2. проверка изображений
  3. сжатие изображений
  4. fini sh

так на стороне пользователя я хочу показать, что каждый скрипт php завершает sh обработку задачи.

например, когда php fini sh загружает изображение, тогда я хочу вернуть сообщение пользователь завершил загрузку, а затем следующим шагом является проверка изображения и многое другое ...

что я знаю, чтобы вернуть ответ на ajax, используя

public function upload_image(Request $request){
    //script to upload image...
    return response()->json([
        'status' => 'true',
        'state' => '1',
        'msg' => 'upload image'
    ]);

    //script to checking images and more...
}

и убедитесь, что это остановит процесс продолжения после возврата.

есть ли способ вернуть ответ пользователю, но продолжить продолжение вызывает сценарий php?

1 Ответ

0 голосов
/ 03 февраля 2020

Нет, нет способа вернуть успех и продолжить выполнение сценариев.

Самый распространенный способ сделать это - использовать очереди и задания, проверьте здесь: https://laravel.com/docs/5.8/queues

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

$.ajax({
    url: '/upload',
    data: {...},
    success: function(res){
        compressionRequest(res.image);
    }
})

Другой способ - использовать сокеты, подобные этому потоку событий:

Отправить событие загрузки => событие успешной загрузки => пользователь получает сообщение об успехе => сервер продолжает манипуляции с изображением

Надеюсь, это поможет вам

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