HTML5 FileWriter APIを使用して、webapp の状態を保存しています。私はそれを行うために定期的に呼び出すJSを少し持っていますFileWriter.write
(そのため、時間の経過とともにwrite
メソッドが数回呼び出されます)。デフォルトでは、FileWriter API は「追加」アプローチを使用してファイルを書き込みますが、これはファイルの内容を上書きしたくないため、私のニーズには合いません。
私は最初にこれを試しました:
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 を使用しています