我使用HTML5 FileWriter API来保存我的web应用程序的状态。我有点JS定期调用FileWriter.write
这样做(所以,随着时间的推移,write
方法被称为几次)。默认情况下,FileWriter API使用'append'方法来编写不适合我需求的文件,因为我不想覆盖文件内容。用HTML5 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
你能否详细说明?什么是“d”? – htulipe
@htulipe,这是我在外部使用的jQuery.Deffered对象,在截断和写入完成时都会收到通知。写作完成后,您可以忽略它或添加任何其他想要执行的代码。 –
@htulipe如果它解决了问题,请将其标记为答案。 –