Как правильно выполнить запрос перед закртием/загрузкой другой страницы?

71
30 ноября 2021, 03:20

Перед переходом на другую страницу или когда пользователь принудительно закрывает вкладку браузера необходим передать на сервер некоторые данные. Отправку выполняю POST запросом. В Chrom работает, хотя были случаи, когда этот запрос не выполнялся. В Firefox запрос вообще не выполняется. Сделал запрос синхоронным. Работает везде. Но правильно ли его выполнять синхронно? Какие еще могут быть решения?

Answer 1

Специально для таких случаев придумали navigator.sendBeacon.

window.addEventListener("unload", logData, false);
function logData() {
  navigator.sendBeacon("/log", analyticsData);
}

Поддержка более-менее хорошая.

Answer 2

Один из вариантов, выполнять регулярные запросы, типа Alive, как только доступ пропал, значит вкладка типа закрыта, правда тут не отследить случай обрыва сети

READ ALSO
Добавить элемент в массив, после определенного номера JS

Добавить элемент в массив, после определенного номера JS

Всем приветКак можно добавить элемент в массив, после определенного номера

111
Постоянный focus на button (запрет . blur)

Постоянный focus на button (запрет . blur)

Есть форма регистрации в которой две кнопки ("Вариант 1" и "Вариант 2")

95
Как сделать Data и Vuex реактивными?

Как сделать Data и Vuex реактивными?

Всем привет: Есть такой код:

320