localStorage的 - 明确的()或的removeItem()?(localStorage

2019-07-21 21:27发布

我应该用clear()抹杀一切localStorage ,或者我应该只是手工removeItem()我在那个特定的网站(这是很容易的跟踪)设置的呢?

我问,因为我不希望最终消灭用户的localStorage ,如果他们有设置其他值。 我在本地主机测试此,发现通过使用clear()我会在其他项目中预先设定的一切都被消灭了。

编辑:我应该提到,我知道的localStorage是域锁定。 我正在遵循这一结构的网站:

public-html
(localStorage)
--project1
----files
--project2
----files
--project3
----files

每个文件使用它自己的独立的localStorage的变量。 如果我localstorage.clear()内项目2,PROJECT1和项目3的设置都将丢失也。

Answer 1:

localStorage的被键入到原点。 所以,如果你所有的项目都在本地主机上运行,那么你擦所有的值,当您使用clear()唯一安全的方法是去除个人。

在生产环境中,每个项目都应该有自己的域名和clear应该是安全的。

所以这是明知是当前原点还有什么的问题。 如果你控制在当前原点一切,不介意擦拭所有, clear()是最好的选择,并为此目的设计的。 如果使用本地存储或托管在同一产地的其他项目也有你的代码的其他部分,那么你会希望更多的选择和使用removeItem()



Answer 2:

clear()将清除当前原点一切( https://developer.mozilla.org/en-US/docs/JavaScript/Same_origin_policy_for_JavaScript )。 使用clear()在example.com不会影响example2.com的localStorage的。 因为你的所有测试文件都在同一个原点(这是您的计算机上清除所有项目数据http://localhostfile:///C:\ )。 因此,将被罚款使用clear()



文章来源: localStorage - clear() or removeItem()?