Как использоватьvisibilitychange вместо beforeunload?Jquery

Программирование на jquery
Anonymous
Как использоватьvisibilitychange вместо beforeunload?

Сообщение Anonymous »

Мне нужно, чтобы мое веб-приложение отправляло оператор вставки при закрытии браузера или вкладки.
Сейчас я использую приведенный ниже код:

Код: Выделить всё

function onExit() {

var fd = new FormData();

fd.append('postmessage', 'CALL myinsertstatement()');

navigator.sendBeacon('insert.php', fd);

}

function sleep(delay) {

var start = new Date().getTime();

while (new Date().getTime() < start + delay);

}

window.addEventListener('beforeunload', function(event) {

onExit();

sleep(1000);

});

Я использую метод Sleep(), чтобы задержать закрытие окна, чтобы дать ему достаточно времени для выполнения метода sendBeacon(), потому что без него большую часть времени он не работал.
Метод Sleep() у меня всегда работает, но я беспокоюсь, что он может не работать с у кого-то медленный Интернет, не говоря уже о том, что sendBeacon() не следует использовать с beforeunload, его следует использовать с VisibilityChange, но я не могу понять, как это сделать для этого используйте VisibilityChange...
Большое спасибо за любые рекомендации!

Подробнее здесь: https://stackoverflow.com/questions/654 ... foreunload

Вернуться в «Jquery»