У меня есть действующий код, который загружает файлы от пользователя в Azure BLOB-хранилище любого размера. Проблема в том, что если файлы больше определенного размера, я перебираю загруженные файлы (я также поддерживаю продолжение загрузки).Эффективная загрузка куска с помощью Javascript/AJAX?
При загрузке куска, filereader работает очень медленно. Я не уверен, как это исправить - я полагаю, что с веб-мастерами? Будет ли это связано с Parallel.js?
Другой недостаток заключается в том, что мне требуется возможность загрузки на IE9 в конце концов - хотя в настоящее время он работает только с HTML5, потому что я использую Filereader. Как я должен делать это без веб-работников, если бы это не было сокрушительно медленно? (У меня есть 50 Мбит/с, загрузка и получение 5 Мбит/с).
EDIT: Спасибо, ребята, это так. Вместо того, чтобы читать в файле, я просто:
var requestData = o['files'][0].slice(o.uploadedBytes, o.uploadedBytes + o.maxChunkSize);
o.data = requestData;
o.dataType = requestData.type;
o.type = "PUT";
o.beforeSend = function(xhr) {
xhr.setRequestHeader('x-ms-blob-type', 'BlockBlob');
};
И это работает как шарм!
Почему вы используете FileReader? –
Можете ли вы поделиться некоторым кодом? Мы также используем FileReader в нашем продукте, и, похоже, он работает нормально. Мы не используем веб-работников. Мы разделяем файл в блоках размером 256 КБ. @RayNicholus - FileReader позволяет вам читать часть файла, чтобы вы могли загружать действительно большие файлы, разбивая их на куски и загружая эти куски. –
@GauravMantri Это не то, для чего используется FileReader. Чтение файла в памяти просто для разделения его на части невероятно неэффективно и не нужно. Вместо этого вы должны использовать метод 'slice' на соответствующем' Blob'. –