Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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
Java window.onunload不';关闭IE时无法完成_Java_Javascript_Html_Jsp - Fatal编程技术网

Java window.onunload不';关闭IE时无法完成

Java window.onunload不';关闭IE时无法完成,java,javascript,html,jsp,Java,Javascript,Html,Jsp,我在ie中运行了一个web应用程序,当我在ie上单击右角的“X”关闭应用程序时,它将调用(通过javascript window.onunload)一个struts操作并删除数据库表中的一条记录。 但现在我发现它有时是不正确的。当我关闭ie时,记录有时并没有被删除。应该是这样的,当记录并没有被删除时,struts操作并没有被调用 更有趣的是,当我打开Fiddler时,每次关闭ie时记录都被正确删除了,没有失败的案例 非常感谢。您不能依赖“onunload”事件 从web浏览器的角度考虑一下:它是

我在ie中运行了一个web应用程序,当我在ie上单击右角的“X”关闭应用程序时,它将调用(通过javascript window.onunload)一个struts操作并删除数据库表中的一条记录。 但现在我发现它有时是不正确的。当我关闭ie时,记录有时并没有被删除。应该是这样的,当记录并没有被删除时,struts操作并没有被调用

更有趣的是,当我打开Fiddler时,每次关闭ie时记录都被正确删除了,没有失败的案例

非常感谢。

您不能依赖“onunload”事件


从web浏览器的角度考虑一下:它是否应该等到所有打开的页面处理“onunload”事件,即使需要30秒?浏览器可能会可靠地向所有打开的选项卡触发“onunload”事件,但它只需等待很短的时间即可完成这些操作。这就是为什么您会看到不一致的行为。

如果您真的必须这样做,请看一下,但是它在不同浏览器中的实现是不一致的:IIRC,opera没有实现它。

在OnLoad中执行服务器操作的错误做法,不要在生产中使用感谢您的响应,我必须使用OnLoad事件,因为除了删除记录外,页面还需要向用户显示确认消息,所以我对其使用了“onbeforeunload”事件,然后我必须使用onunload事件删除记录。你能给我一些建议吗?是的,另一个建议,作为一个用户:当我关闭页面时显示确认信息的页面-绝对糟糕(请原谅我的语言)。永远不要这样做。谢谢你的回复。我已将onbeforeunload事件用于发送用户警报消息。我无法捕获用户单击警报消息上的“确定”或“取消”按钮。所以我必须使用onunload事件来删除记录。顺便说一句我的应用程序只适用于IE.所以不需要考虑其他Web浏览器。你能给我更多的建议吗?