Что происходит, когда XMLHttpRequest прерывается?

  • Будет ли прерванный XMLHttpRequest загружать ответ с сервера?
  • В какой момент жизненного цикла запроса он отличается от обычного запроса?
  • Различные браузеры ведут себя по-разному?
  • Плохая практика прерывать запросы?

person Trent    schedule 26.08.2016    source источник
comment
ответы на некоторые из ваших вопросов содержатся в документации - и спецификация   -  person Jaromanda X    schedule 26.08.2016


Ответы (1)


  • Нет, загрузка будет (должна) отмениться (по крайней мере, в моем браузере)
  • #P1#
  • Нет, по крайней мере, надеюсь, что нет. Они должны следовать спецификации. .
  • На мой взгляд, точно нет. Это пустая трата пропускной способности и других ресурсов, если запросы, которые вам больше не нужны, выполняются в фоновом режиме. Лучше их прервать.

Два недавних примера использования из личного опыта:

  • Таблица с различными параметрами для фильтрации. В зависимости от выбранных параметров результирующий запрос иногда занимал некоторое время. Если вы выберете медленный набор параметров A, а затем быстрый набор параметров B до завершения A, вы сначала увидите результаты B в таблице, но затем A в конечном итоге завершит и «заменит» содержимое таблицы. поэтому вместо этого вы внезапно увидите A.
    Решение. Отмените предыдущий незавершенный запрос, прежде чем запускать следующий.
  • SPA со страницами с иногда длительными запросами, например ранее упомянутая таблица. При переходе на другую страницу иногда выполнялось несколько запросов в фоновом режиме для вещей, которые больше не нужны.
    Решение. Зарегистрируйте эти запросы, которые будут прерваны при размонтировании страницы/компонента.
person Svish    schedule 05.03.2019
comment
Сообщается ли об этом серверу при прерывании запроса со стороны клиента? Я склонен думать, что дело в этом ответе, но я не могу найти точную информацию. - person Johnny5; 26.02.2020