如果取消对localStorage的写入会怎么样?

Jam*_*mie 5 javascript html5 cordova

假设我打电话给本地存储,如下所示:

window.localStorage.setItem("key", bigJsonObject);
Run Code Online (Sandbox Code Playgroud)

然后,用户立即关闭其Web浏览器.结果会是什么?

window.localStorage.getItem("key") 
Run Code Online (Sandbox Code Playgroud)

会bigJsonObject被部分写出来吗?或者整个写入会失败吗?他们有什么方法可以保证不会有部分写入?

Lig*_*ica 5

请参阅"Web存储"规范的第4.1节:

对于失败,setItem()和removeItem()方法必须是原子的.在失败的情况下,该方法什么都不做.也就是说,对数据存储区域的更改必须成功,或者根本不能更改数据存储区域.

然而,(历史上)在这方面存在浏览器错误,例如在Chrome 21之前的一段时间,直到Chrome 29之前的某个时间.