So verhindern Sie die Seitennavigation, bis der Ajax-Aufruf abgeschlossen ist
Daher habe ich einen Ajax-Aufruf, um mehrere Dutzend Datenblöcke mit einer Größe von jeweils mehreren Megabyte zu reduzieren und die Daten anschließend lokal über die API des HTML5-Dateisystems zu speichern.
Ich wollte verhindern, dass der Benutzer die Seite verlässt, bevor die Ajax-Aufrufe ausgeführt wurden. Ich beschloss, das zu erkundenonbeforeunload
event, um zu benachrichtigen, dass der Benutzer auf der Seite bleiben soll, bis die Ajax-Aufrufe abgeschlossen sind. Ich habe vor dem AJAX-Aufruf Folgendes eingestellt und am Ende / Erfolg des AJAX-Aufrufs den zurückgesetztwindow.onbeforeunload
.
window.onbeforeunload = function(){
return "Information is still downloading, navigating away from or closing "+
"this page will stop the download of data";
}
Wenn ich versucht habe, die Seite zu schließen oder von der Seite weg zu navigieren, wird die Popup-Nachricht wie erwartet angezeigt und der Benutzer wird aufgefordert, zu bleiben. Sobald ich jedoch bestätige, dass ich auf der Seite bleiben möchte, werden die Ajax-Anrufe nicht dort fortgesetzt, wo sie aufgehört haben. Gibt es eine Möglichkeit, zu verhindern, dass die Ajax-Aufrufe angehalten / gestoppt werden, oder mit ihren Ausführungen fortzufahren / neu zu starten?
Ich bin offen für Ideen zur Implementierung der gewünschten Funktionen, die im Titel dieses Beitrags beschrieben sind.