DDR爱好者之家 Design By 杰米

如果你是一名开发人员,想要进入到.NET的世界,你需要知道都有哪些可能。由于.NET Framework是.NET生态系统中最流行的技术,你可以用它来构建各种各样的应用程序,但是最近,出现了一些新的东西,比如 .NET Core 和.NET Standard library。我们可以在项目或构建中使用它吗"htmlcode">

localStorage.setItem(‘my-key', ‘some-value')

现在让我们再次检索新创建的对象。

let item = localStorage.getItem(‘my-key')

console.log(item) // Output: “some-value”

这很简单。让我们继续更新my-key的值。注意,我们使用相同的setItem函数来覆盖它的值。

localStorage.setItem(‘my-key', ‘new-value')

最后,让我们删除这个键。removeItem函数接受一个参数,它就是想要删除的键。

localStorage.removeItem(‘my-key')

为了确保我们已经删除了所有键,让我们使用clear函数来清除存储在localStorage中应用程序的所有内容。

localStorage.clear()

现在,我们已经为更高级的localStorage操作做好了准备。

高级localStorage操作:遍历

让我们看看用于遍历localStorage对象和查找键的方法。

第一种方法使用了最直接的for循环。注意,我们可以直接在localStorage对象上使用length属性。

for(let i=0; i<localStorage.length; i++) {
 let key = localStorage.key(i)
 console.log(`${key} with value ${localStorage.getItem(key)}`)
}

我们也可以直接使用key方法检索相应的键。

for (let i = 0; i < localStorage.length; i++){
 let key = localStorage.key(i)
 console.log(key)
}

接下来,让我们看看在使用localStorage API时要避免的坑。

localStorage常见的坑

让我们看一下与localStorage API交互时最常见的两个坑。

首先,尝试存储一个JSON对象。localStorage API被设计为键-值对存储。因此,该值只接受字符串,不接受对象。然而,这并不意味着我们不能存储对象。我们需要将它序列化为一个字符串。

const dinner = { apples: 5, oranges: 1 }
localStorage.setItem(‘my-dinner', JSON.stringify(dinner))

当读取序列化的对象时,我们需要再次将其解析为JSON。

let dinner = JSON.parse(localStorage.getItem(‘my-dinner'))

其次,尝试存储一个布尔值。同样,localStorage API只支持字符串。存储布尔值时要小心。

幸运的是,该解决方案类似于存储一个JSON对象。当存储一个布尔值时,setItem函数将把它转换为像这样的字符串- " true "。要读取带有字符串的布尔值,我们可以使用JSON.parse方法将其转换回布尔值。

let myBool = JSON.parse(localStorage.getItem(‘my-bool'))

localStorage的限制

这里是对localStorage限制的快速回顾。

  • 基于字符串的存储
  • 大多数浏览器的存储空间有限,最多可达5 MB
  • 尝试存储巨大字符串时会阻塞主线程。确保不要同时更新相同的键,因为这将导致问题。在这种情况下,最好寻找替代存储解决方案,因为localStorage API不是为这个目的而设计的。
  • Web worker或web service无法访问localStorage
  • 没有内置的安全机制。因此,我们不建议存储密码或与身份验证相关的数据。任何可以访问用户浏览器的人都可以打开一个页面并读取存储在localStorage中的信息,就像图书馆中公共可用的计算机一样。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米