在Javascript中读取文件而不阻止I / O.

时间:2016-02-02 01:48:16

标签: javascript

如何在不读取I / O的情况下使用FileReader()读取文件?以下是我现在的表现:

function readImageFile(imageFile, callback) {
    var reader = new FileReader();
    reader.onload = function(e) {
        callback(e.target.result);
    };
    reader.readAsDataURL(imageFile);
}

除了我需要处理非常大的图像(> 4k分辨率)这需要花费相当多的时间之外,其工作正常。我无法在阅读时阻止用户输入使用页面上的其他功能。

2 个答案:

答案 0 :(得分:3)

我相信FileReader已经异步:https://developer.mozilla.org/en-US/docs/Web/API/FileReader

  

FileReader对象允许Web应用程序异步读取   存储在用户计算机上的文件(或原始数据缓冲区)的内容,   使用File或Blob对象指定要读取的文件或数据。

FileReaderSync将是同步版本:https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync

答案 1 :(得分:1)

client = { 1:{"name":"name_1","email":"name_1@gmail.com"}, 2:{"name":"name_2","email":"name_2@gmail.com"} } orders={1:{"date":"2016-02-01","client_id":1}...} 是异步的。它没有按定义阻止UI(https://www.w3.org/TR/FileAPI/)。但是要处理文件,计算机需要花费一些资源,所以你需要考虑这个。处理大文件可能需要大量资源。