Jak zapobiec nawigacji po stronach, aż połączenie ajaxowe zostanie zakończone
Mam więc wywołanie ajax, aby sprowadzić kilkadziesiąt kawałków danych o rozmiarze kilku megabajtów, a następnie przechowywać dane lokalnie przez api systemu plików html5.
Chciałem uniemożliwić użytkownikowi nawigację od strony przed wykonaniem wywołań ajax. Postanowiłem zbadaćonbeforeunload
zdarzenie, aby powiadomić, że użytkownik powinien pozostać na stronie do czasu zakończenia wywołań ajax. Ustawiłem następujące ustawienia przed wywołaniem AJAX, a na końcu / sukces połączenia AJAX zresetowałemwindow.onbeforeunload
.
window.onbeforeunload = function(){
return "Information is still downloading, navigating away from or closing "+
"this page will stop the download of data";
}
Gdy próbowałem zamknąć stronę lub oddalić się od strony, wyskakujący komunikat pojawia się zgodnie z oczekiwaniami, informując użytkownika o konieczności pozostania. Jednak po potwierdzeniu, że chcę pozostać na stronie, wywołania ajax nie zostaną wznowione w miejscu, w którym zostały przerwane. Czy istnieje sposób na zapobieganie wstrzymywaniu / zatrzymywaniu wywołań ajax lub kontynuowaniu / ponownemu uruchomieniu przy ich wykonaniach?
Jestem otwarty na wszelkie pomysły na wdrożenie pożądanej funkcjonalności opisanej w tytule tego posta.