我正在制作一个处理被拖到应用程序的歌曲的应用程序。当我使用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)
}
}
编辑
我在 AMD 相当于核心二双核、2.7 GHz、2 gigs 内存、win7 x64。我相信的规格实际上是足够体面的。因此,如果某些事情在我的机器上确实需要足够长的时间,我会认为它是不行的。
这是我的应用程序中主要错误修复的阻止程序。我真的很想在很长一段时间内提供修复程序。我(还)无法设置赏金,也许在设置赏金之前有最短时间。
编辑
我做了一些测试,事实证明,这需要很长时间,因为 chrome计算 大小而不是仅仅从一些元数据中读取它。这是测试结果。
文件越大,花费的时间越长,如果第二次调用它会使用一些缓存并且不加载文件。所以现在..我怎样才能减少这个时间?大小是我的应用程序中的一个重要信息,但可能不足以使每个文件的用户上传速度降低约 1.5 秒!我正计划导入库,当添加 100 首左右的歌曲时,它确实有助于减少这个时间。这一次将是应用程序响应时间的一个重大突破。