3 个回答

无法判断,因为有各种意外呀,比如说用户取消了,网络不好等等。

有可能能判断的方案我猜可以通过缓存。比如说你先下载一遍,第二次下载会快很多。通过请求资源来判断时间。

但是这只是理论上的想法,并不一定能好使。

在普通的浏览器中,对服务器端来说是没有办法监听到类似消息的,对本地用户来说是可以监听到这样的消息的,这算是安全领域方面的限制。
对于本地用户来说,完全可以完整的监控下载完成情况,比如各种下载工具上都会有类似的功能。

主流方式没有。

可以关注一下 Chrome 83 新增的 API chooseFileSystemEntries,支持写入本地文件,虽然没有进度,但其本身的调用都是 Promise 形式返回的,只要进入 .then 了就可以近似理解为写入成功了。

需要注意的是目前仍处于试验性阶段,只在 Chrome 83 或更新的桌面端浏览器上支持。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题