javahearter 2009-07-09 10:32
浏览 703
已采纳

页面等待下载响应如何处理?

[b]流程描述:[/b]
报表下载页面向服务器发出生成报表的请求,服务端即时生成报表,然后返回生成的excel报表文件InputStream流给客户端。
[b]问题:[/b]
因即时生成报表,服务端处理比较耗时,从请求发出到响应返回,大概等要10秒。所以想在这段时间,报表下载页面给用户一个等待提示,直到响应返回。我想请教下,让请求提交后,置提交按钮不可用,等到下载对话框弹出时(说明响应返回了),如何实现将按钮重新置为可用?

谢谢~~

  • 写回答

5条回答 默认 最新

  • iteye_20231 2009-07-09 11:36
    关注

    这样处理这个方案
    1.使用AJAX提交即时生成报表的请求
    2.即时生成的报表及时的生成临时文件存放,对于临时文件的存在周期不是我们讨论的重点,重点是,后台返回的是临时文件的URL地址
    3.AJAX提交代码要获取的就是这个地址,获取后在显示一个真实的下载链接让用户点击就行了

    这里面有些地方是可以商榷的
    比如,后台生成的报表文件可以是生成带临时的目录文件,而且配置临时目录是可以列表的,这样的好处就是,第一步提交以后,后台可以先生成目录名称,在没有生产报表文件的时候就返回结果,前台就可以用AJAX的方法定时对临时目录列表,查看有没有文件输出。
    当然复杂的话,可以对输出文件进行接口定义,用来指示报表生成的进度,以及成败等信息。

    当然这写和后台服务器的生成方法有关,如果是同步生成的,那要写的好的话,可能就要特殊处理了,要对服务器返回的数据(比如进度,成败)边接收边处理了,这个太复杂我们可以后续讨论。

    先看看我说的这个是否满足你的要求。当然AJAX的话提交后禁止用户操作就简单了,前面有朋友给出

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误