本页内容
Web 存储 API
Deno 1.10 引入了 Web 存储 API,它提供了一个用于存储字符串键值对的 API。持久化数据的工作原理类似于浏览器,并且有 10MB 的存储限制。全局 sessionStorage 对象仅在当前执行上下文中持久化数据,而 localStorage 会从执行到执行持久化数据。
在浏览器中,localStorage 会根据来源(实际上是协议加上主机名加上端口)唯一地持久化数据。从 Deno 1.16 开始,Deno 有一套规则来确定什么是唯一的存储位置。
- 使用
--location标志时,该位置的来源将用于唯一地存储数据。这意味着http://example.com/a.ts和http://example.com/b.ts以及http://example.com:80/将共享相同的存储,但https://example.com/将不同。 - 如果没有位置说明符,但指定了
--config配置文件,则使用该配置文件的绝对路径。这意味着deno run --config deno.jsonc a.ts和deno run --config deno.jsonc b.ts将共享相同的存储,但deno run --config tsconfig.json a.ts将不同。 - 如果没有配置或位置说明符,Deno 将使用主模块的绝对路径来确定共享哪些存储。Deno REPL 会生成一个基于
deno启动的当前工作目录的“合成”主模块。这意味着从同一路径多次调用 REPL 将共享持久化的localStorage数据。
这意味着,与 1.16 之前的版本不同,localStorage 始终在主进程中可用。
示例 跳转到标题
以下代码段访问当前来源的本地存储桶,并使用 setItem() 向其添加数据项。
localStorage.setItem("myDemo", "Deno App");
读取 localStorage 项的语法如下
const cat = localStorage.getItem("myDemo");
删除 localStorage 项的语法如下
localStorage.removeItem("myDemo");
删除所有 localStorage 项的语法如下
localStorage.clear();