Javascript 在卸载前显示一段时间的模式,然后离开页面?

Javascript 在卸载前显示一段时间的模式,然后离开页面?,javascript,jquery,Javascript,Jquery,我试图在用户离开页面时用消息显示一个模式,我是在ajax调用成功的情况下这样做的,我的问题是,如果这种情况发生得太快,在浏览器转到另一个页面之前,用户将没有时间阅读消息,我就是这样做的: $(window).bind('beforeunload', function(event){ // Setting some vars $.ajax({ // Some ajax attrs beforeSend: functio

我试图在用户离开页面时用消息显示一个模式,我是在ajax调用成功的情况下这样做的,我的问题是,如果这种情况发生得太快,在浏览器转到另一个页面之前,用户将没有时间阅读消息,我就是这样做的:

$(window).bind('beforeunload', function(event){
        // Setting some vars
        $.ajax({
            // Some ajax attrs
            beforeSend: function(){$("#partial_review_modal").modal('show')},
            success: function(){$("#partial_review_modal").delay(600).modal('hide')},
        }
    });
});
显然,如果ajax调用返回得太快,消息将无法显示足够长的时间,并且.delay()将无法在指定的时间内显示消息,因为浏览器已经转到另一个页面

关于如何使浏览器在离开前等待一段时间的提示


编辑:显示此模式的全部目的是通知用户已在表单中填写的数据正在保存,以便他可以稍后返回并完成填写,这涉及到将一些内容保存到我的数据库(我使用Django和Postgres)。我还想让用户在ajax调用返回之前不能离开此页面,我认为这对于保存到我的DB中的对象来说已经足够了,但显然不是这样,因为当我再次加载页面时,ajax调用应该删除的一些内容还没有删除,但是如果我刷新页面,这些信息就会出现,这也说明了为什么我想在离开页面之前稍等一下,我不确定这是否是一个好主意,但让我们试一试。。。 如何确保用户将阅读该消息? 给他任何他需要的时间。。。 我们所要做的就是在方法的末尾添加一个返回值,用于默认浏览器确认,如下所示:

$(window).bind("beforeunload",function() {
    $.ajax({
        // Some ajax attrs
        beforeSend: function(){$("#partial_review_modal").modal('show')},
        success: function(){$("#partial_review_modal").delay(600).modal('hide')}, 3000)},
        });

        return 'Are you sure you want to leave this page?'
});

感谢@JosephCho!可能是重复的!这确实是同一个问题,他们只是建议不要这样做,但我相信这对我来说不会有什么坏处,所以如果有人知道怎么做,请告诉我。这将是确保用户确实有时间阅读消息的一个好方法,但也会破坏消息的目的,这是为了向用户显示一些关于后台发生的事情的信息(ajax调用),以便用户知道正在进行操作(我将表单的部分状态保存到数据库)。我将用关于ajax调用的传统信息编辑我的OP