Я использую HTML5 FileWriter API для сохранения состояние моего веб-приложения. У меня есть немного JS, который периодически вызывает FileWriter.write
для этого (поэтому со временем метод write
вызывается несколько раз). По умолчанию API FileWriter использует подход «добавления» к записи файлов, который не соответствует моим потребностям, поскольку я не хочу перезаписывать содержимое файла.
Я сначала попробовал это:
this._writer.seek(0);
this._writer.write(content);
Это не работает, когда вы пишете текст короче, чем содержимое файла. Затем я попробовал это:
this._writer.truncate(0);
this._writer.write(content);
Этот код должен очистить файл, а затем записать мой новый контент, но я получаю следующую ошибку при вызове метода write
:
Uncaught InvalidStateError: An operation that depends on state cached in an interface object was made but the state had changed since it was read from disk.
Странно: когда я отлаживаю код (с точкой останова), ошибка не возникает, как будто FileWriter.truncate
был асинхронным методом...
Я застрял здесь, есть идеи?
Я использую Chrome 30.0.1599.69.