Jasper reports PDF生成-服务器端使用Jasper服务器

Jasper reports PDF生成-服务器端使用Jasper服务器,jasper-reports,jasperserver,export-to-pdf,Jasper Reports,Jasperserver,Export To Pdf,以下是我们应用程序的要求- 用户修改采购项目页面上的内容。最多可以有6个这样的购买项目,他可以通过后退和前进按钮浏览 完成编辑后,他可以单击生成PDF 单击生成PDF时,需要执行以下操作- 请求被转发到应用程序,应用程序需要在大约4个关系数据库表中保存所有6项的数据。每个表最多有5-15列 然后,请求应该从应用程序转发到Jasper服务器,以便从持久化的数据中准备PDF。 一旦PDF准备就绪,Jasper服务器需要将响应作为字节流发送回应用程序,应用程序应反过来将其转发回浏览器 生成的PDF

以下是我们应用程序的要求-

  • 用户修改采购项目页面上的内容。最多可以有6个这样的购买项目,他可以通过后退和前进按钮浏览
  • 完成编辑后,他可以单击生成PDF 单击生成PDF时,需要执行以下操作-

    • 请求被转发到应用程序,应用程序需要在大约4个关系数据库表中保存所有6项的数据。每个表最多有5-15列
    • 然后,请求应该从应用程序转发到Jasper服务器,以便从持久化的数据中准备PDF。
      • 一旦PDF准备就绪,Jasper服务器需要将响应作为字节流发送回应用程序,应用程序应反过来将其转发回浏览器
      • 生成的PDF应开始在浏览器上下载
    问题 虽然上面定义了需求,但将具有上述事件序列的PDF文档作为同步请求在浏览器上下载将使用户无限期等待

    我的想法是将第一个请求作为生成PDF的异步请求触发。在浏览器和应用程序之间设置轮询,以验证是否可以下载PDF,如果可以,则显示“下载”按钮,让用户只需获取PDF即可


    关于如何进行设计还有其他建议吗?

    您提到的设计是基于轮询的。另一个解决方案是推送。只要服务器准备就绪,它就应该能够将内容推送到客户端。这可以通过反向ajax或web套接字实现

    然而,这两种方法(投票和推送)之间存在权衡。您必须分析您的环境,并决定哪些最适合您的需求。 请参阅:有关轮询与推送问题的更多详细信息