Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于如何防止用户在单击“保存”按钮后关闭浏览器窗口(通过onbeforeunload)的建议?_Javascript_Jquery_Onbeforeunload - Fatal编程技术网

Javascript 关于如何防止用户在单击“保存”按钮后关闭浏览器窗口(通过onbeforeunload)的建议?

Javascript 关于如何防止用户在单击“保存”按钮后关闭浏览器窗口(通过onbeforeunload)的建议?,javascript,jquery,onbeforeunload,Javascript,Jquery,Onbeforeunload,关于如何在保存数据之前提示用户关闭窗口,我已经找到了许多解决方案,但在我的场景中,这一页保存了大量数据,速度很慢(大约需要30秒),这是在单击“保存”按钮之后。我们发现,用户正在单击“保存”按钮,然后在单击“保存”后导航或离开。根据浏览器的不同,发送到服务器的内容不一定会被保存(看看你的Chrome) 我选择了使用这个解决方案,并且几乎完成了我需要的工作,除了当我单击“保存”按钮时,仍然会提示我保存更改,因为我要离开页面。好像我需要关闭提示符,然后在延迟一段时间后再打开它。这可能吗 wi

关于如何在保存数据之前提示用户关闭窗口,我已经找到了许多解决方案,但在我的场景中,这一页保存了大量数据,速度很慢(大约需要30秒),这是在单击“保存”按钮之后。我们发现,用户正在单击“保存”按钮,然后在单击“保存”后导航或离开。根据浏览器的不同,发送到服务器的内容不一定会被保存(看看你的Chrome)

我选择了使用这个解决方案,并且几乎完成了我需要的工作,除了当我单击“保存”按钮时,仍然会提示我保存更改,因为我要离开页面。好像我需要关闭提示符,然后在延迟一段时间后再打开它。这可能吗

    window.onbeforeunload = function() {
        if ( Flag == 'Y' ) {
            return "Changes made. Don't want to save?";                         
        }
    }

你为什么不试试“随用随存”的方法呢?。。。您可以在用户使用任何数据输入机制时发送小的快速请求,并将其存储在服务器上的临时文件中,因此当用户点击“保存”按钮或关闭浏览器窗口时,您只发送一个小的请求,足够快,以允许安全断开浏览器连接。然后,服务器只读取临时文件,并将其作为用户在单个操作中发送的文件进行处理。这可能不容易,但您将摆脱不少麻烦。

src的上述代码来自您应该通过UI解决的问题。显示某种进度条或微调器以指示操作尚未完成。在UI中显示微调器并显示一条消息,说明不要关闭浏览器,可能需要1分钟或2分钟,保存完成后,通知用户我们已经在使用jQuery插件BlockUI,但是我们的用户不耐烦了,不管怎样都会关闭窗口。除了UI解决方案之外,还应该考虑减少节省时间(我知道,说起来容易做起来难)。您是如何保存数据的?也许你可以做一些优化。我也提出了这个解决方案,但是如果用户退出,那么客户端就不需要任何数据。他们对此非常坚决。英雄联盟