Struts2的action执行时间比较长,导致不能跳转页面,该如何处理? 问题是这样的:我用poi做一个excel导出,当数据量小的时候就能跳转页面,超过一定数据量是在action里面的处理时间久比较长,当action处理完毕后不能跳转页面,页面还是在等待状态。我主要是想知道为什么会出现这种问题,该如何解决。当然sql和代码优化先不管,以后再处理。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你跳转页面和下载excel 有什么关系? 下载完后再跳转?什么思维~ 下载处理时间长,和页面跳转没必然关系。最多你开线程异步处理下载功能 我是在action里面生成excel放在服务器上,然后返回页面显示一个下载的链接,这样也不行么? 这么没什么好办法吧,你导出比较慢,是因为你的数据量太大了。你定下位,看看主要时间消耗在哪里,是在sql查询中,还是在poi填充数据的时候。你如果导出的数据过大,内存都会溢出的。或者你可以考虑分成几个excel文件,然后返回链接,通过链接再进行下载~ 嗯,,用户ajax. 成功返回前,弹个窗口,,,“正在处理中.....” 可以试试wireshark抓包分析一下就比较清楚了,前提是你要有点网络基础! 再说现在我不管功能是否合理,只是想知道怎么解决这种问题。好吧,那你可以开异步线程,点击生成Excel时候,直接返回页面,后台继续生成。监控生成进度,显示前台。满100% 直接刷新页面。或者你只显示任务生成ing... 然后等待返回。Ajax或者什么自己考虑。 将生成的文件,放在本地服务器临时文件夹内,给出下载路径,显示页面上。实现点击下载。这样就避免了页面会挂掉,无反映的情况。思路就是,先把页面显示出来。再处理。了解了么 你是说直接用response吗?如果数据量大的话也不行,页面照样卡住。 s:property输出整型值怎么相加??? java ssl连接问题 反向生成Hibernate文件 往数据库插入记录失败? JSP如何实现在线客服功能 Hibernate4 业务层无法更新记录 如何取上一月和下一月? 问一巨菜问题,在一个xml中,有多条记录,如何用java调用SAX,DOM进行删除和修改? 关于跳槽的一些建议 struts2多图片上传,点第二个图片修改的时候,会把第一张图片修改 如何将一个抽象的接口注入到实现类中。 java用JNative执行dll加密后执行statement.executeBatch()缓慢
下载处理时间长,和页面跳转没必然关系。最多你开线程异步处理下载功能
你定下位,看看主要时间消耗在哪里,是在sql查询中,还是在poi填充数据的时候。
你如果导出的数据过大,内存都会溢出的。
或者你可以考虑分成几个excel文件,然后返回链接,通过链接再进行下载~
满100% 直接刷新页面。或者你只显示任务生成ing... 然后等待返回。Ajax或者什么自己考虑。
将生成的文件,放在本地服务器临时文件夹内,给出下载路径,显示页面上。实现点击下载。
这样就避免了页面会挂掉,无反映的情况。
思路就是,先把页面显示出来。再处理。了解了么