Я создаю приложение, которое имеет дело с песнями, перетаскиваемыми в приложение. Когда я использую file.size
, чтобы получить размер файла, требуется около 1500 мс (среднее значение), чтобы получить это значение. Есть ли более быстрый способ? Я понимаю, почему это требует времени (и памяти), но, поскольку я новичок в работе с файлами в HTML5, возможно, есть кое-что, чего я не знаю, что может ускорить процесс.
То же самое относится и к API файловой системы. Если я вызову файл через него и вызову file.size
, это займет аналогичное время.
PS Я пришел к такому выводу, добавив console.time()
в мой код.
Вот код (массово урезанный)
fileSystem.root.getFile(id, {}, function(fileEntry) {
fileEntry.file(function(audioTemp) {
console.time(1);
console.log(audioTemp.size);
console.timeEnd(1)
});
});
Это пример API файловой системы. Для этого (очевидно) нужен файл с именем id
, чтобы он работал. Ниже приведен код ввода файла D & D
function onChangeAddSongsInput() {
var files = document.getElementById('addSongsInput').files;
for(var i=0; i<files.length; i++) {
console.time(1);
console.log(files[i].size);
console.timeEnd(1)
}
}
EDIT
Я нахожусь на AMD, эквивалентной ядру два дуэта, 2,7 ГГц, 2 гигабайта оперативной памяти, win7 x64. Спецификации, которые я считаю, на самом деле достаточно приличные. Поэтому, если что-то займет достаточно много времени на моей машине, я приму это как запрет.
Это блокировщик для исправления серьезной ошибки в моем приложении. Я действительно хотел бы отправить с исправлением за это долгое время в комплекте. Я не могу установить вознаграждение (пока), может быть, есть минимальное время, прежде чем назначить вознаграждение.
EDIT
Я провел некоторое тестирование, и, как оказалось, это занимает много времени, потому что chrome вычисляет размер, а не просто читает его из некоторых метаданных. Здесь - результат теста.
Чем больше файл, тем дольше он длится, и при повторном вызове он использует некоторый кэш и не загружает файл. Так что теперь .. как я могу сократить это время? Размер - важная информация в моем приложении, но, вероятно, она не настолько важна, чтобы снизить скорость загрузки пользователя примерно на 1,5 секунды для каждого файла! Я планирую импортировать библиотеки, и это действительно поможет сократить это время при добавлении примерно 100 песен. На этот раз будет существенным удар по времени отклика приложения.