【问题标题】:Custom download manager javascript自定义下载管理器 javascript
【发布时间】:2015-08-07 05:13:57
【问题描述】:

名为mega.com 的文件共享网站具有创建自定义下载管理器的功能。当你下载一个文件时,它会在网站上显示一个自定义进度条(大概是把文件加载到缓存中),然后为缓存的文件创建一个下载提示。这将如何用 javascript 生成?

【问题讨论】:

标签: javascript file download prompt


【解决方案1】:

据我所知,Mega.com 使用这个内部下载管理器是因为他们以加密形式将数据存储在服务器上;加密和解密在浏览器中进行。

存储

您可以使用 IndexedDB 来存储二进制数据。这是tutorial from Mozilla,解释如何使用 AJAX 下载图像并将其保存在 IndexedDB 中。

当您将数据存储在 IndexedDB 中时,您应该有机会下载它(从内部浏览器存储)。 Here you can read,如何创建下载提示。

进度条

使用XMLHttpRequest 时,您可以通过为progress 事件提供处理程序来获取下载进度。

var oReq = new XMLHttpRequest();

oReq.addEventListener("progress", updateProgress, false);

[...]

function updateProgress (oEvent) {
  if (oEvent.lengthComputable) {
    var percentComplete = oEvent.loaded / oEvent.total;
    // ...
  } else {
    // Unable to compute progress information since the total size is unknown
  }
}

如果服务器没有发送带有标题的Content-Length,文件的总大小将不可用。

Full source code and description on MDN.

【讨论】:

    【解决方案2】:

    您的问题有完整答案:http://tonistiigi.github.io/mega/


    如果您想在JavaScript 创建下载管理器,这些文章将帮助您完成工作:

    如果要创建文件下载进度,请到这个链接:Javascript source file download progress?


    请投入更多的精力、时间和精力来完成工作。如果不能,请在我自己的答案下方发表评论;我会帮你详细做的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多