在我们的应用程序中,我们有动态生成的PDF文档的链接。该链接看起来像这样的主机/ 22-5 / file_3136.pdf 这样的浏览器,它似乎是一个静态的PDF文档。单击链接时,将打开一个新窗口。该窗口仅接收带有以下标题的PDF文档(无HTML):
Content-Disposition: inline; filename=file_3136.pdf
Content-Type: application/pdf
我们希望用户能够看到在浏览器中的PDF如果安装PDF插件,并能够保存正确的文件名文件。
现在我们要添加一个加载屏幕,该屏幕将在生成PDF时显示。什么是最好的方法,同时保留当前的功能。
一个选项是显示加载屏幕,然后在生成完成后重定向到PDF。这需要我将PDF保留在服务器上一段时间。目前,一旦发送回复,它们就会被删除。
另一种选择是发送一些HTML和JavaScript(显示装载页)用<embed>
,<iframe>
或<object>
标记指向服务器上的PDF。
最好的方法是什么?什么适用于大多数浏览器?
答案 0 :(得分:0)
在下载网站上,我经常会看到另一个(小)窗口弹出。我相信那个窗户可以作为一个编舞者&#34;控制主页面上显示的内容,同时启动重定向到下载文件。
答案 1 :(得分:0)
HTML重定向。您创建一个每隔几秒重定向“自身”的页面。完成PDF后,您将生成重定向到该文件。
答案 2 :(得分:0)
实际预加载PDF文件,以便给出即时加载的印象。在pdf链接页面之前的页面中添加预加载脚本:
<img id="pdfLoader" src="preloader.jpg"/>
您可以从ajaxload.info
获取预加载器图片<script language="javascript" type="text/javascript">
//<![CDATA[
<!--
var pdfLoader = document.getElementById("pdfLoader");
pdfLoader.src = "http://mysite.com/mypdf.pdf";
//-->
//]]>
</script>
上面的代码放在包含.pdf文件链接的页面之间和页面中(或其中包含.pdf的html文件)指示浏览器将pdf文件下载到浏览器缓存中,但只需将其保留在那里。 (filetype是irelevant image()很方便,对于任何文件类型使用相同的脚本,因为它不会被渲染)下载发生在页面完全呈现之后,因此不会延迟当前页面。单击指向.pdf文件(或html页面)的链接时,浏览器会在浏览器缓存中找到.pdf,但不会下载,但会从缓存中显示,显示下载速度非常快。
在禁用javascript的浏览器中,该功能会正常降级
答案 3 :(得分:0)
如果您将PDf线性化,您还可以非常快速地显示第一页。我在http://www.jpedal.org/PDFblog/2010/11/do-i-have-to-download-the-whole-pdf-if-i-view-it-across-the-internet/和http://www.jpedal.org/PDFblog/2010/02/linearized-pdf-files/
撰写了两篇介绍线性化PDF的文章