在刷新或者浏览器关闭的时候来提示是否继续操作

window的onbeforeunload,在刷新前或者在离开页面前会调用,如果返回文字信息,则会提示是否继续操作    、


window.onbeforeunload = function(){
             $.axse("${ctx}/fileInfosa/closeUpload",
                      "upload=true",
                      function(data){ },
                      function(data){ });
             return "正在文件上传都会丢失,是否继续此操作?";
     }

这里首先的业务逻辑是上传文件只能控制打开一个窗口,所以打开窗口的时候后台会在session里记录标志。当再次打开,会提示是不能打开两个窗口,当然这里还有个bug,当用不同浏览器的时候,sessionId是不一致的时候还是可以打开两个,不过可以放到application里,到时候再修正这个


最开始用的onunload 事件,关闭的时候,向后台发送一请求,清除session,还可以,然后window.open 的name参数用随机数,就不会替换之前打开的网页,但如果用户自己去复制一个打开,关闭也会清除。这样保证只有一个窗口上传,保证数据没这么容易出错,然后出现一个问题,刷新的时候不能出现了不能打开两个框的提示,显然是没有来得及发送请求或者没有发送请求。

 一经查阅资料,使用上面的可以解决这个问题。当然还有个小bug,就是用户点不刷新的时候,实际上已经清除了session里的值,所以点击上传还是会打开

当然这也是有办法修正的

你可能感兴趣的:(浏览器,onbeforeunload)