当用户查询报表一个报表的时候, 可能服务器长时间查询,还没返回数据时用户已经关闭了IE窗口,可服务器报表还在继续运行查询这张报表。请问有何种方法在用户关闭的时候,终止掉这张报表的查询, 向各位大大门请教了
我的想法是设置个全局list,在登录的时候放一个值进去,退出的时候删掉,在查询报表的时候去判断是否还在list中存在
请教是是否还有更好的方法

解决方案 »

  1.   

    没有更好的办法,浏览器关闭的时候,也无法保证一定会发出个close一类的ajax消息。
      

  2.   

    如果非正常退出呢?list不是一直保留一个值了?
    一般可以考虑,浏览器关闭事件用ajax发送一个通知给后台,但这样也没法保证能正常发送消息,比如网线断开等给种外界因素
    还有就是考虑session,设置一个timeout
    还有就是5L的定时查看连接状态
      

  3.   

    客户端定时发请求,请求结果。如果一定时间不请求的话,可以中止查询了。
    参考struts2的ExecuteAndWaitInterceptor