单击按钮时,我的GWT应用程序将返回嵌入HTML页面的PDF文件,该文件如下所示:
<html><head></head> <body marginwidth="0" marginheight="0" bgcolor="rgb(38,38,38)"> <embed width="100%" height="100%" name="plugin" src="http://myserver/?cmd=getMyPdf" type="application/pdf"> </body> </html>
问题是服务器创建该PDF文件可能需要一段时间,所以我想要的是一个带有加载动画的等待屏幕,该动画可以在后台下载PDF文件,然后在完成文件后显示页面如上所述。
一种明显的方法是显示一个加载页面,向服务器发送异步命令,然后在调用onSucceed方法后,正常调用该页面。缺点是我必须添加一些服务器端逻辑以使PDF创建在后台工作…
有什么办法可以通过GWT API在客户端进行此操作?
您是否看到此stackoverflow问题 检测浏览器何时下载文件?基本上,给出的答案是您在返回响应中设置一个cookie,然后在客户端等待该cookie的设置。使用GWT可以轻松完成此操作,因为它具有调度程序(用于重复的计时器检查),并且可以轻松访问Cookie。您仍然需要进行一些服务器更改,但是不必创建后台进程。