繁体   English   中英

将值存储到localStorage的顺序是否同步?

[英]Is order of storing values to localStorage synchronous?

对不起,我的英语太糟糕了。

我正在使用localStorage存储一些属性。 每个属性都有其自己的键和值,键和值是动态生成的。 所以我不知道会有多少人。

在第1页上,保存所有属性(单击一下)。

在第2页上,我称“存储”事件。 我需要读取所有键和值,并使用这些键和值重新呈现页面的内容。

问题在于,每个键/值对都会触发“存储”事件。 而且我不想为每个键/值对重新渲染page2的内容。 我想等到所有属性都保存在page1上,然后重新呈现page2的内容。

因此,我需要确保所有属性都保存在第1页上,之后我需要阅读它们在第2页上。

我的问题:localStorage的存储过程是否同步? “同步”对我来说意味着一次只能执行一个setItem命令,而所有setItem命令都按照我编写的确切顺序执行。 所以当我写的时候:

(loop start)    
localStorage.setItem("bar1", foo1)
localStorage.setItem("bar2", foo2)
...
localStorage.setItem("bar100", foo100)
(loop end)    

我可以确定所有项目都保存在之前(“ bar100”,foo100)吗?

否则可能有任何问题,并且(“ bar100”,foo100)可能在之前的任何项目之前已保存?

亚历克斯

根据W3C规范:

每当要检查,返回,设置或删除localStorage属性的Storage对象的属性时,是否作为直接属性访问的一部分,在检查属性是否存在时,在属性枚举期间,在确定存在的属性数时,或作为执行存储接口上定义的任何方法或属性的一部分,用户代理必须首先获取存储互斥量。

这意味着它以同步方式运行,但是,这不能保证页面重新加载后所存储项目的顺序。

但是要回答您的问题,是的, "bar100"将最后写入本地存储。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM