我正在创建一个网页,我需要在窗口关闭时更新Node.js服务器中的数据库。
代码是:
window.close(function(){
event.preventDefault();
var UrlCierra = location.search && location.search.split('=')[1];
var cierro = $.post( '/updatesala/cerrarventana', {url: UrlCierra} );
cierro.done(function(data){
if (data=="Cierra"){
window.close();
}
});
});
我知道代码错了,但我该如何解决呢?
答案 0 :(得分:0)
作为explained in another answer,这样做可能是非常糟糕的主意,因为:
即使有人在工作流程的早期退出页面,您似乎也在尝试确保更新内容?
重新审视工作流程,看看是否有更优雅(更安全)的解决方案,例如在输入的模糊事件触发时保存。
答案 1 :(得分:-1)
您可以使用unbeforeunload事件。
window.addEventListener('onbeforeunload', () => {
// sync call here
});
如果您需要ajax调用,请确保使用同步(jQuery中的async:false
)调用。这是不推荐使用的,如果Chrome在一秒钟内没有完成,Chrome会忽略。