При сохранении файла лагает интерфейс (cordova-plugin-file)
У меня есть форма с полем <input type='file'>. Я сохраняю выбранный файл в LocalFileSystem.PERSISTENT.
Мой код:
self.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {
fs.root.getFile(file_name, { create: true, exclusive: false }, function (fileEntry) {
var reader = new FileReader();
reader.onloadend = function () {
fileEntry.createWriter(function (fileWriter) {
fileWriter.onwriteend = function () {};
fileWriter.onerror = function (e) {};
dataObj = new Blob([reader.result], { type: 'text/plain' });
// вот здесь лагает интерфейс страшно
fileWriter.write(dataObj);
postMessage('ok');
});
};
reader.readAsDataURL($(file_id)[0].files[0]);
}, onErrorCreateFile);
}, onErrorLoadFs);
Но этот код тормозит интерфейс (ios, android). При размере файла в 30MB фризы до 10 секунд. Я начал смотреть Web Workers, но они нифига не имеют доступа LocalFileSystem.
Как мне сохранять выбранный в форме файл (<input type='file'>) в LocalFileSystem без лагов в интерфейсе?