2016-05-17 2 views
0

Запуск сервера Apache с PHP 5.4.Прерывает POST XHR надежным?

У меня есть форма, которая отправляет запрос xhr на сервер и прерывает предыдущие запросы, если кнопка снова нажата до завершения текущего xhr.

Так что, если я сижу там, нажав на кнопку как можно быстрее (в течение примерно 100-150ms) и видя все отмененные XHR-х накапливались в моей вкладке сети, а затем пусть последний запрос на самом деле закончить, я проверить сервера и убедитесь, что все отмененные запросы фактически «выполнили» свою задачу на сервере (подключается к базе данных и оставляет некоторые данные в таблице).

Также может быть актуальным: Единственное, что происходит после «работы» (вставка в базу данных), это отправка строки состояния обратно клиенту.

Я читал, что вы не должны полагаться на отмену HTTP-запросов для фактического отмены процесса сервера, но здесь что-то здесь неприятно.

Можно ли отменить XHR-запросы или что-то происходит с моим сервером?

+0

http://php.net/manual/en/function.ignore-user-abort.php – PeeHaa

+3

Метод отмены отмены XMLHttpRequest в порядке, но если запрос уже отправлен на сервер, тогда сервер будет обрабатывать запрос даже если мы отменим запрос. Клиент не будет ждать ответа/ответа. –

ответ

0

Отмена XMLHttpRequest используется только для предотвращения поднятия пользовательского интерфейса, но не отменяет запрос сервера.

Итак, ответ? Это ненадежно для сервера.

Если вы планируете предотвращать сразу несколько запросов, вы можете использовать либо 1) серверную очередность, либо 2) просто отключить кнопку действия во время выполнения запроса (переименование кнопки только после завершения запроса). Я бы сказал, что последнее проще.

0

HTTP - это протокол без гражданства. Когда вы прерываете свой POST от клиента, он просто не дает клиенту прослушать ответ, но POST уже отправлен на сервер. Когда сервер получает запрос, он не сидит, ожидая другого запроса; он просто выполняет действие, связанное с запросом POST данному ресурсу.

Смежные вопросы