假设我这样打电话给本地存储:
window.localStorage.setItem("key", bigJsonObject);
之后,用户立即关闭了他们的网络浏览器。
的结果是什么?window.localStorage.getItem("key")
bigJsonObject
会被部分写入吗?或者整个写入会失败吗?他们有什么方法可以保证不会有部分写入?
答案 0 :(得分:5)
请参阅§4.1 of the "web storage" specification:
setItem()
和removeItem()
方法在失败方面必须是原子的。如果失败,该方法不执行任何操作。也就是说,对数据存储区域的更改必须成功,否则根本不能更改数据存储区域。
然而,(历史上)在这方面存在浏览器错误,e.g. some time before Chrome 21 until some time before Chrome 29。