我有一个在ie中运行的web应用程序,当我在IE上点击“X”右上角关闭应用程序时,它将调用(通过javascript window.onunload)一个struts操作并删除数据库中的表中的记录。 但现在我发现它有时是不正确的。当我关闭ie时,记录有时没有被删除。应该是在没有删除记录时不调用struts动作的情况。
更有意思的是,当我打开Fiddler时,记录在关闭时正确删除,即每次都没有失败。
非常感谢。
答案 0 :(得分:1)
你不能依赖“onunload”事件。
从Web浏览器的角度考虑一下:它应该等到所有打开的页面都处理“onunload”事件,即使需要30秒吗?可能浏览器可靠地向所有打开的选项卡发出“onunload”事件,但是它等待的时间非常短。这就是为什么你看到不一致的行为。
答案 1 :(得分:0)
如果你真的必须这样做,请看看onbeforeunload
,但它的实现在不同的浏览器中是不一致的:IIRC,opera没有实现它。