[英]localStorage: condition to prevent storing duplicated values in 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.