本问题已经有最佳答案,请猛点这里访问。

是否有这样的方法/方法/策略来检测文件下载是否完成?我的问题是这样的。

脚本:单击"报告生成器"按钮时,会出现一个加载轮图标,因为生成电子表格需要一段时间……现在,当下载完成并将电子表格保存到客户端计算机中时,加载轮图标仍在旋转。我想的唯一方法是检测下载是否完成,然后隐藏旋转的轮子,那么如何移除旋转的轮子呢?困惑:

在将我的问题标记为重复之前,请注意:当我按下按钮时,我正在电子表格中写入一个文件,然后自动/强制下载该文件。这不像是典型的静态文件下载

当用户请求下载时,为什么您仍然有一个旋转的轮子?纺车的出现向用户表明还有一些事情要做,但下载是最后一步。

浏览器有自己的下载管理器,它告诉用户下载完成的时间。你不需要自己动手。

试试看这里

@Remyabel是因为我正在从数据库中提取数据,数据量很大,然后将其写入电子表格中。当我单击"报告生成"按钮时,会出现旋转轮,因为完成报告生成需要5到10分钟,并自动弹出窗口来保存生成的文件。

可能您可以在窗口弹出之前使用javascript隐藏图标。

怎样?你能告诉我如何检测窗口何时弹出吗?

这种长时间运行的流程不太适合典型的Web请求/响应工作流。是的,它会起作用……但我相信存在问题,用户体验也不理想。我最好的工作流程是执行以下操作之一:

缓存报表。如果报告中的数据在周期(例如1天),然后设置一个cron以生成报告和然后将缓存的报告返回给用户。用户体验将立即下载。

如果需要动态生成报告,那么让用户请求报告并立即返回结果。稍后通过通知系统(假设他们在您的站点上有仪表板或其他东西)或电子邮件(请求报告时必须提供电子邮件地址)交付报告。

我认为这两个选项提供了更好的用户体验。

第二个选项有一些……"即时"的……这个报告生成的东西位于管理仪表板上,不能延迟……当他们按下生成报告按钮时,他们想要立即生成电子表格,可以等5到10分钟……还有其他想法吗?…如何在窗口弹出之前检测?正如@binu pandian在第一行回复中提到的那样

我发现像"不能延迟……他们希望电子表格立即"这样的要求通常可以得到更多的审查。例如,上述两种情况的交易准确性(最新数据)为及时性(交货速度)。选项1缓存数据。您的用户真的需要每次请求都生成这个报告吗?如果这一需求得到放宽,您将拥有一个更容易构建的系统。生成报告在服务器上听起来资源很重。有多少管理员可以同时访问这个?一些工程选择让…享受。

我会选择这个作为最好的答案,尽管它根本没有帮助我的问题,也许在另一个项目,它会有所帮助。

我同意Rcravens的回答,但将在选项2中添加以下内容:点击你的?下载?按钮,在服务器上调用电子表格的生成,并将其存储在temp目录中。通过Ajax(最好是WebWorkers),您可以通知用户生成正在进行中,并不断检查文件的状态。当检查和返回错误时,显示您的车轮。如果生成完成,请停止控制盘并通过javascript调用下载。

如果可以的话,如果你向用户展示你的电子表格生成的进度条,你的体验会更好,这样他就知道为什么要等多久了。

希望有帮助。

php 判断下载状态,关于php:如何检测文件的下载是否已经完成?相关推荐

  1. java迅雷下载excel,Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)...

    (一) 如果在迅雷的下载对话框中点取消,则会使用IE的下载,这里的文件又是正确的了: 怀疑迅雷是根据下载对话框中的网址重新请求下载,与发起请求的页面已经无关,而IE又不会把ViewState信息传到迅 ...

  2. java 下载后删除,在服务器端生成文件后,下载后并删除,改了后发现文件变成空白解决思路...

    当前位置:我的异常网» Java Web开发 » 在服务器端生成文件后,下载后并删除,改了后发现文件 在服务器端生成文件后,下载后并删除,改了后发现文件变成空白解决思路 www.myexception ...

  3. 【原创】华为ICS Lite 批量下载,不限数量,突破200个下载限制,几千个文件批量下载。

    ICS Lite 批量下载 官方说明[教程]ICS Lite 批量下载用户指导ICS Lite离线下载工具新版本下载地址运营商网站: https://support.huawei.com/carrie ...

  4. linux下载软件失败,解决Ubuntu Kylin文件包下载失败的错误

    Ubuntu Kylin更新时出现错误是很常见的.下面大家将看到的是在Ubuntu Kylin下文件包下载失败的错误以及如何快速解决这个错误的技巧. 文件包下载失败的错误 这个错误并不仅限于Ubunt ...

  5. php-fpm哪里下载_centos – Nginx PHP-FPM提供.php文件作为下载

    这是一个问了一千次的问题,因为我讨厌写帖子,所以我会阅读并搜索所有可能的文档,然后才能找到写作的烦人部分(对我来说). 所以我有Nginx& PHP-FPM启动并运行CentOS 7.2. P ...

  6. JS下载不带后缀名的文件,下载后自动加了后缀名,如何处理?

    //订单批量导入-模板下载 function templateDownload() {//window.open(resolve("xxx/xxx/xxx/xxxxx.xls#") ...

  7. 前台+后台 java下载服务器、本地图片、文件(下载tomcat配置的虚拟路径文件)可指定任意保存路径,SSM框架

    背景:一个系统中有web网站与APP两个客户端,两个客户端有分别的后台,共同部署在一个服务器上,APP有一个上传图片.文件的功能,网站端则可以查看.下载APP上传的图片,下载APP上传的文件. 问题: ...

  8. android引导程序下载,安卓引导文件下载-安卓引导文件源程序下载完整版-西西软件下载...

    现在越来越多程序都有引导页面了,但是网上的资料都不是很全,还有很多都是炒来炒去,漏了很多,能够让你的Android手机上启动的时候选择自己想要启动的ROM. 顺序是: OneAcitivity  -- ...

  9. python断点续传下载_Python版本,图片,视频断点续传下载

    图片下载 tqdm tqdm是一个快速.扩展性强的进度条工具库,用户只需要封装任意的迭代器 tqdm(iterator),tqdm官方文档. 对于爬虫进度的监控,这是个不错的工具. requests模 ...

最新文章

  1. 30、【华为HCIE-Storage】--Hyper Metro(双活【块业务】)
  2. python自动化测试看什么书-Python接口自动化测试
  3. 当对象与原型有相同的属性,调用时的上下文指向问题
  4. Cookie与Web Storage的区别
  5. HTML5 本地存储
  6. SpringBoot中整合Quartz
  7. android项目闪屏页细节
  8. .Net Core中IOC容器的使用
  9. 入门案例Maven搭建SpringBoot工程
  10. 控制台应用和空项目有什么区别_互联网小程序的应用以及APP的应用有什么区别及发展...
  11. 第三次作业——朱华泓
  12. C#移除HTML标记
  13. 开关电源三种拓扑的产生
  14. 系统集成项目管理工程师通过率高吗?
  15. 解决微信端苹果手机无法跳转页面
  16. 将多个html文件合成一个,【答疑】怎么用pr将多个项目工程文件合成一个? - 视频教程线上学...
  17. 前端微信签名验证工具_微信网页开发如何完成签名校验
  18. XRecycleView (Scrapped or attached views may not be recycled)
  19. Ubuntu linux下运行xv6
  20. 2011考研数学二第(6)题——积分大小关系比较

热门文章

  1. 公网与私网的区别 ?如何进行通信?(NAT技术,端口映射技术,)
  2. hanlp自然语言处理包的使用
  3. 西航计算机学院学生会,“智”行千里,逐梦远航丨西航职院人工智能学院召开2020年度总结表彰暨新年联欢会...
  4. 28 岁程序员身价过亿,选择退休东渡日本
  5. 分享一款十分骚气的终端软件eDEX-UI
  6. 力扣算法学习计划打卡:第五天
  7. 太阳能路灯的根本结构及作业原理
  8. python 中的while true是什么意思_解析Python中while true的使用
  9. Window cmd
  10. 《学术研究,你的成功之道》 读书笔记