【问题标题】:cross-Domain request with download progress bar带下载进度条的跨域请求
【发布时间】:2013-10-08 12:35:51
【问题描述】:

我想使用跨域请求 ajax jquery 显示下载进度条。我正在使用 ajax 从其他域下载我的 .js 文件,为此我想显示下载状态。我的文件大小最大为 4MB。也想知道有没有其他方法可以实现。我想用纯html来实现

【问题讨论】:

  • XHR 支持下载和上传进度。看看 SO 或谷歌的例子。这已经讲过很多次了。
  • 是的,你是对的,XHR 支持下载和上传进度,但是当我在 $.ajax 下载进度条中设置 crossDomain:true 时没有显示,我使用了 xhr 字段,但是那个代码是不使用 crossDomain:true 执行

标签: jquery ajax download cross-domain progress-bar


【解决方案1】:

AJAX 是一个请求,一个响应,所以我想说简单的答案是你不能。如果您能够在字节返回文件时将它们写入,您可以 http 请求下载文件的大小,并制作一个小部件来显示文件大小/您写入的大小。

但是,因为在收到整个响应(也就是整个文件)之前,您对 AJAX 请求的响应活动不会被触发,所以我想说没有办法做到这一点,除非您可以在 AJAX 中请求单独的部分(其中 A:我不认为你可以,B:不是一个好主意,因为它是异步的,可能导致文件数据乱序)。

我建议使用他们的套接字 API 在 Java 中编写一个服务方法,并在 http 请求中请求文件的“范围”,然后为文件的每个部分对该服务进行后续调用,并在获得时更新状态栏来自您的服务的响应。

【讨论】:

    猜你喜欢
    • 2016-05-05
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 2017-06-15
    相关资源
    最近更新 更多