假设我这样调用本地存储:
window.localStorage.setItem("key", bigJsonObject);
紧接着,用户关闭了他们的网络浏览器。这会导致什么结果?
window.localStorage.getItem("key")
< p > bigJsonObject
会部分写入吗?还是整个写入会失败?有没有办法保证不会出现部分写入?
假设我这样调用本地存储:
window.localStorage.setItem("key", bigJsonObject);
紧接着,用户关闭了他们的网络浏览器。这会导致什么结果?
window.localStorage.getItem("key")
< p > bigJsonObject
会部分写入吗?还是整个写入会失败?有没有办法保证不会出现部分写入?
对于失败而言,
setItem()
和removeItem()
方法必须是原子的。 失败时,该方法不执行任何操作。也就是说,数据存储区域的更改必须是成功的,或者数据存储区域根本不应更改。
然而,这方面曾经存在(历史上)浏览器中的错误,例如:在Chrome 21之前的一段时间内,直到Chrome 29之前(参见此处)。