Почему реализация Firefox webkitdirectory так медленно читает с DVD/CD?

Я работаю над службой загрузки файлов, используя HTML5. В случае использования пользователь хочет загрузить весь каталог, который он получает в виде CD/DVD.

Чтение каталогов возможно в Chrome с помощью

webkitdirectory | mozwebkitdirectory | каталог

приписывать.

Mozilla Firefox адаптировал эту функцию в августе этого года, в версии 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 ответов

Другие вопросы по тегам