Возможно ли отправить ajax-запрос, не дождавшись ответа перезагрузить страницу и потом поймать ответ?
Привет, друзья!
Возник такой вопрос, возможно, кому-то он покажется странным, но хочу разобраться.
Допустим, запрос на сервер идёт 30 секунд. Возможно ли отправить ajax-запрос, не дождавшись ответа перезагрузить страницу, например, на 10 секунде и потом на 30 секунде поймать ответ?
Очень странный вопрос. Можно, но костыли окажутся сложнее, чем забить на это.Примерно так:
1. Запросы логировать
2. В куках хранить id текущего запроса
3. Каждые несколько секунд проверять статус текущего запроса
4. Результат запроса писать в БД в виде строки JSON к ID запроса
5. При получении результата производить дейстия.
У меня логика такая. С помощью ajax-запроса запускается процесс отправки запросов на разные сервера. В это время пользователю показывается окно с таймером. Когда запрос удачный, возвращается ответ и пользователя перекидывает на соответствующую страница. Загвоздка в том, что если пользователь перезагрузит страницу или закроет браузер и снова откроет окно, ему нужно показать то же самое окно с таймером. Поэтому такой странный вопрос.
Дело не в таймере, а в том, что когда клиент закроет браузер, процесс на сервере будет продолжаться. И если пользователь снова откроет браузер в том момент, когда статус ещё не изменился, надо в дальнейшем его об этом уведомить.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.