@hades432

Как запустить php скрипт после ajax запроса?

У меня функция в жс, которая после нажатия на кнопку отправляет post запрос с датой
$.post("index.php", {data: "data"});
как я могу выполнить php, сразу после нажатия на кнопку, но не при загрузке страницы?
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
@rPman
Вопрос немного не понятен.
* Если задача в php скрипте как то отличить обычную загрузку страницы от запроса, то к запросу нужно добавить параметры, это нормальный способ, специально для этого созданный. Параметры могут быть добавлены напрямую в ссылку, это формат запроса http get (используется по умолчанию) или как дополнительные поля запроса http post, в любом случае метод ajax jquery все делает автоматически и достаточно указать данные в settings в виде массива key->value в параметре data
* Если проблема в том что запрос выполняется параллельно загрузки данных браузером и может быть прерван принудительно браузером или при проблемах с соединением, то типичный способ - запускать свои задачи отдельным приложением (сервисом), с которым веб приложение (то что внутри index.php) должно как то общаться (обычно используют тот же http протокол но это не обязательно, например один из способов - оставить в базе данных задачу, список которых и будет мониторить это приложение). Способов тьма, написано куча решений, особенно когда речь идет о высоконагруженных задачах, но настоятельно рекомендуется решить подобную задачу самостоятельно, благо там нет ничего сложного.
В данном решении должно появиться понятие задачи, у которой есть статусы новая, исполняется, завершена, ошибка,... а на стороне клиента это соответственно должно обрабатываться.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы