Я пытаюсь использовать AJAX в функции window.onbeforeunload для автоматического сохранения текстового поля на странице моего сайта (кнопка сохранения отсутствует, все это делается в фоновом режиме).Функция сохранения написана на PHP.Я начал с того, что попробовал следующее:
window.onbeforeunload = function(e){
var noteelement = document.getElementById( 'note' );
var mynote = noteelement.value;
$.post('save_my_note.php', { thenote: mynote }, function(data){});
};
При исследовании я понял, что из-за асинхронного характера вызова ajax код php не вызывается, потому что окно закрывается до того, как функция отключается.с сервера.
Конечно, как уже говорили другие, если я добавлю возвращаемое значение в функцию onbeforeunload, чтобы вызвать всплывающее диалоговое окно (это будет окно «Вы уверены, что хотите покинуть»)?), он работает, так как вызов .post имеет время для запуска, пока диалоговое окно ожидает ответа:
$.post('save_my_note.php', { thenote: mynote }, function(data){});
return mynote;
};
Было сказано, что я должен изменить этот пост-вызов на асинхронный AJAX, такчто функция ожидает завершения функции, но не очень разбирается в синтаксисе, я не совсем уверен в синтаксисе, который мне нужен.Вместо функции post я попробовал следующее:
$.ajax({
url: "save_my_note.php",
data: "{thenote: mynote}",
async: false
});
Однако, похоже, это тоже не работает.
У кого-нибудь есть простой пример кода для реализации автосохранения синхронно с помощью функции onbeforeunload (или onunload ??)?Я не специалист по javascript или jquery, и примеры, которые я нашел в Интернете, сбивают с толку.