当前位置: 首页 > 面试题库 >

浏览器下载完成事件

季稳
2023-03-14
问题内容

我们一直在寻找答案,但是还没有找到解决方案。

我们有一个Web服务器,允许用户下载动态生成的文件(pdf),并通过servlet提供服务。我们想知道下载何时完成(以及如何:成功,失败,用户取消了吗?)。

没有用户输入,有没有办法知道这一点?这些文件相对较小,因此不需要进度条功能,但是我们需要某种“挂勾”功能,可以在下载完成后向您报告。这可能吗?

[edit]浏览器端将具有什么功能来检测下载结束并通过ajax向服务器报告?


问题答案:

除非收到网络错误,否则您将无法知道。唯一的方法是让浏览器将第二个事件发送到服务器(使用AJAX)以确认下载已成功完成。



 类似资料:
  • 我在我的应用程序中使用SWT浏览器。我需要在浏览器中的超文本标记语言页面上运行脚本。但是脚本是在页面完全加载之前运行的。所以我如何让应用程序等待,直到浏览器完成加载。我曾经尝试过这样的事情。 但是这样不行! 这类似于JavaSWT浏览器:等待动态页面完全加载,但没有解决方案。

  • 事件 是某事发生的信号。所有的 DOM 节点都生成这样的信号(但事件不仅限于 DOM)。 这是最有用的 DOM 事件的列表,你可以浏览一下: 鼠标事件: click —— 当鼠标点击一个元素时(触摸屏设备会在点击时生成)。 contextmenu —— 当鼠标右键点击一个元素时。 mouseover / mouseout —— 当鼠标指针移入/离开一个元素时。 mousedown / mouseu

  • 因此,在下载和打开文件之间的某个位置,我需要一个if语句来检查它是应该继续还是等待文件。

  • 从互联网下载图片,并显示。下载图片过程中显示进度条。支持图片缩放,运用了ASI、SDWebImage。支持图片缓存。 [Code4App.com]

  • 问题内容: 一切正常,但是只有当文件很小(大约1MB)时,当我尝试使用更大的文件(例如20MB)时,我的浏览器将其显示,而不是强制下载,到目前为止,我尝试了许多标头,现在我的代码看起来像: 问题答案: 在将文件内容写入输出流之后,你将设置响应头。在响应生命周期中设置标头很晚。正确的操作顺序应该是首先设置头,然后将文件的内容写入servlet的输出流。 因此,你的方法应编写如下(由于仅是表示形式,因

  • 问题内容: 我有敏感文件要下载给用户,每个用户只能 下载 给定文件一次。如果下载失败,我希望允许重新下载,但不允许其他方式。 仅仅依靠在服务器上记录/处理文件下载 请求 是不够的-我需要确定性地知道文件何时完成以及在客户端是否就位,因为我的许多用户都在频繁掉线的环境中工作。 最有效的方法是,浏览器从“另存为…”对话框中暴露出一个“文件已保存”事件,该事件可能会链接到下载页面上的JavaScript