为什么Firefox webkit目录实现从DVD / CD读取速度如此之慢?

时间:2017-10-17 15:01:56

标签: performance firefox directory cd dvd

我正在使用HTML5处理文件上传服务。在用例中,用户想要上传整个目录,他以CD / DVD的形式接收该目录。

使用

在Chrome中读取目录
  

webkitdirectory | mozwebkitdirectory |目录

属性。

Mozilla Firefox今年8月在第55版中改编了此功能。 从Hardisk读取,此功能在Chrome上运行良好,即使速度稍慢,也可以在Firefox上使用。

但是一旦用户选择CD / DVD路径或CD / DVD上的目录,Firefox就会变得非常慢并且更频繁地挂起。

这是一个简单的代码片段,它加载一个目录,遍历文件元数据,并将一个文件加载到内存中以显示其大小。

document.getElementById("filepicker").addEventListener("change", function(event) {
  let output = document.getElementById("listing");
  let files = event.target.files;
  let fileReader = new FileReader();

  let start = new Date().getTime();
  for (let i=0; i<files.length; i++) {
    let item = document.createElement("li");
    item.innerHTML = files[i].webkitRelativePath;
    output.appendChild(item);
  };
  
  console.log("Time used for iterating over file meta: " + (new Date().getTime() - start) / 1000 + "s");
  
 
  
  fileReader.addEventListener("load", function(evt) {
          console.log("File Loaded");
          console.log("Time for loading Single File into memory: " + (new Date().getTime() - start) / 1000 + "s");
          let blob = new Blob([new Uint8Array(evt.target.result)], {type: "arraybuffer"});
          console.log("Blob Size is: " + blob.size); //To show that file is read to memory.
          }, false);

   console.log("START LOADING FILE");
   start = new Date().getTime();
   fileReader.readAsArrayBuffer(files[0]);

}, false);
<div>
  Select Directory:
  <input id=filepicker type="file" webkitdirectory mozdirectory msdirectory directory multiple>   
<div>

<div id=listing></div>

您可以自己尝试,也许错误仅取决于我的CD / DVD驱动器。 我的问题是:

  • 从CD / DVD驱动器加载是否有类似的问题?
  • 这是Firefox webkitdirectory实现中的已知错误吗?
  • 我做错了什么,是否有其他方法可以获取文件名并将文件加载到内存中?

如果您遇到类似问题,我可以向Mozilla填写问题报告。

0 个答案:

没有答案