Sco*_*ott 11 javascript html5 local-storage
我是应该clear()用来删除所有内容localStorage,还是应该手动removeItem()设置我在特定网站上设置的内容(这很容易跟踪)?
我问,因为localStorage如果他们设置了其他值,我不想最终消灭用户.我正在localhost中测试它,并注意到通过使用clear(),我之前在其他项目中设置的所有内容都被删除了.
编辑:我应该提到我知道localStorage是域锁定的.我正在运行一个遵循这种结构的网站:
public-html
(localStorage)
--project1
----files
--project2
----files
--project3
----files
Run Code Online (Sandbox Code Playgroud)
每个文件使用它自己独立的localStorage变量.如果我localstorage.clear()在project2中,project1和project3的设置也会丢失.
Ben*_*ick 12
localstorage是一个起源的关键.因此,如果您的所有项目都在localhost上运行,那么您在使用时将擦除所有值clear(),唯一安全的方法是单独删除.
在生产环境中,每个项目都应该有自己的域,并且clear应该是安全的.
所以这是一个知道当前起源还有什么的问题.如果您控制当前原点上的所有内容并且不介意擦除它,那么它clear()是最佳选择并且是为此目的而设计的.如果代码的其他部分使用localstorage或同一来源托管的其他项目,那么您将希望更具选择性和使用removeItem().
clear()清除当前原点上的所有内容(https://developer.mozilla.org/en-US/docs/JavaScript/Same_origin_policy_for_JavaScript).clear()在example.com上使用不会影响example2.com的localStorage.它正在清除计算机上所有项目的数据,因为您拥有的所有测试文件都位于同一个源(http://localhost或file:///C:\).因此,使用起来会很好clear()