Почему реализация 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.