Javascript 在卸载之前显示加载程序和post AJAX
我有一个带有表单的设置页面。我注意到人们经常忘记单击save按钮,所以我决定在window.onbeforeunload上使用$.ajax发送POST请求。我还希望在发送请求之前显示来自的加载程序,并在请求完成时隐藏 这就是我所拥有的:Javascript 在卸载之前显示加载程序和post AJAX,javascript,jquery,ajax,onbeforeunload,Javascript,Jquery,Ajax,Onbeforeunload,我有一个带有表单的设置页面。我注意到人们经常忘记单击save按钮,所以我决定在window.onbeforeunload上使用$.ajax发送POST请求。我还希望在发送请求之前显示来自的加载程序,并在请求完成时隐藏 这就是我所拥有的: function save(e) { var msg = 'Your settings were not saved. Please do not leave yet so we can try saving again'; $('form').dimm
function save(e) {
var msg = 'Your settings were not saved. Please do not leave yet so we can try saving again';
$('form').dimmer('show');
var xhr = $.ajax('settings.php', {type: "POST",
data: $('form').serialize(), async: false});
$('form').dimmer('hide');
if (xhr.status !== 200){
$('form').submit(); //will trigger if the user stays
if (e)
return e.returnValue = msg;
}
}
if ('onbeforeunload' in window)
window.onbeforeunload = save;
else if ('onunload' in window)
window.onunload = save;
else {
var button = $('noscript.submitParent').text();
$('.ui.form.segment').append(button);
}
但是现在,加载程序在请求完成之前不会显示。我怀疑发生这种情况是因为async:false,这是不卸载页面所必需的
在发送请求之前,有没有关于如何显示加载程序的建议?可能吗?
我尝试了$window.trigger'resize'from和$form.dimmer.height的想法,但没有成功
我知道,但如果可能的话,我不想使用它
我使用jQuery 2.1.1对不起,为什么不自动保存它?像谷歌DocsHow里经常出现的那样?无输入?我不想经常这样