Oto prosty przykład pracy. Cokolwiek zadzwonisz return
z połączenia zwrotnego unload
, pojawi się w oknie potwierdzenia przeglądarki.
przykład Praca wysyłania żądania Ajax przed rozładować http://jsfiddle.net/alexflav23/hujQs/7/
Najprostszym sposobem, aby to zrobić:
window.onbeforeunload = function(event) {
// do stuff here
return "you have unsaved changes. Are you sure you want to navigate away?";
};
w jQuery:
$(window).on("beforeunload", function() {
$.ajax("someURL", {
async: false,
data: "test",
success: function(event) {
console.log("Ajax request executed");
}
});
return "This is a jQuery version";
});
patrzeć w karcie sieciowej przeglądarka. Zobaczysz, jak żądanie jest wysyłane, tak jak chciałeś. Po prostu wyślij odpowiednie dane.
Pamiętaj, że wszystkie operacje, które zostały uruchomione, muszą być synchroniczne, więc możesz na przykład wykonywać synchroniczne żądania ajax. Powyższe nie jest jednak całkowicie wiarygodne w żadnym celu.
Umożliwia okresowe tworzenie kopii zapasowych danych użytkownika do localStorage
i automatyczną synchronizację z serwerem. Zachowaj window.onbeforeunload
jako dodatkowe zabezpieczenie, ale nie jako główny mechanizm. Powszechnie wiadomo, że powoduje problemy.
Co chcesz zrobić po rozładowaniu? – writeToBhuwan
Muszę wykonać wywołanie Ajax do PHP, aby zdezaktywować zmienną sesji. –
'odejdzie przez kliknięcie linku' to pokazuje, że musisz związać rozładowanie na swoim dokumencie – muneebShabbir