Что произойдет, когда location.href будет изменен до завершения запроса ajax?

  1. Пользователь нажимает на какую-либо ссылку, которая выполняет какой-либо запрос ajax – скажет, что этот запрос занимает 20 секунд.
  2. Перед тем как запрос будет завершен, пользователь нажимает на другую ссылку, которая перенаправляет целую страницу (без аякса) на другую страницу.

Что произойдет с запросом ajax? Он будет всегда заполняться на стороне сервера, но ответ не придет нигде? Или, может быть, запрос ajax на стороне сервера будет «убит»?

Я спрашиваю, потому что у меня есть какой-то скрипт, который занимает некоторое время для запуска, но пользователю не нужно теперь результат – это просто огонь и забудьте – может быть, есть какой-то вариант в ajax, чтобы заставить его не отправлять какой-либо ответ?

Solutions Collecting From Web of "Что произойдет, когда location.href будет изменен до завершения запроса ajax?"

Браузер должен убить запрос AJAX, закрыв соединение с сервером; однако это не означает, что ваша обработка на сервере также обязательно будет убита: ignore_user_abort ()

Сервер выполнит запрос, не подозревая, что клиент «перешел». Сервер вернет ответ клиенту, как обычно. Клиент просто проигнорирует ответ.

Поэтому ожидайте, что серверная сторона будет нормальной, поэтому будет работать метод «огонь и забыть» (так как клиент перешел и «забыл»). Но если вы хотите сделать что-то на стороне клиента в ответ (что отрицает часть «забыть»), тогда новая страница не сможет перехватить ответ. Браузер будет игнорировать его.