Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[建议]localstorage储存文件 #529

Open
Gr3yPh opened this issue Jan 20, 2025 · 0 comments
Open

[建议]localstorage储存文件 #529

Gr3yPh opened this issue Jan 20, 2025 · 0 comments

Comments

@Gr3yPh
Copy link

Gr3yPh commented Jan 20, 2025

描述

可以尝试调用浏览器的localstorage创建一个所谓的“文件系统”,这样各种文件什么的都可以永久保存在浏览器内,并且可以任意编辑

方案

以下内容来自我最爱的搜索引擎Microsoft Bing
JavaScript中的localStorage
1
2
3
localStorage是Web存储API的一部分,它允许网页在用户的浏览器中存储键值对数据。与sessionStorage不同,存储在localStorage中的数据没有过期时间,即使浏览器关闭后数据依然会保留。这使得localStorage成为在浏览器会话之间持久保存信息的理想选择。

基本用法

在JavaScript中,可以通过window.localStorage访问localStorage对象。以下是一些基本操作:

存储数据:使用localStorage.setItem(key, value)方法可以将数据存储在localStorage中。例如: localStorage.setItem("username", "张三");

读取数据:使用localStorage.getItem(key)方法可以读取存储的数据。例如: let username = localStorage.getItem("username");

删除数据:使用localStorage.removeItem(key)方法可以删除单个键值对。例如: localStorage.removeItem("username");

清除所有数据:使用localStorage.clear()方法可以清除所有存储的数据。例如: localStorage.clear();

注意事项

字符串存储:localStorage中的所有键和值都是以字符串的形式存储的。即使你存储了一个数字,它也会被转换成字符串。

同源策略:localStorage遵循同源策略,不同的网站不能共用相同的localStorage数据。

存储限制:大多数浏览器为localStorage设置了5MB的存储限制。

浏览器兼容性:localStorage在所有现代浏览器中都得到支持,但在IE8以上的IE版本才开始支持。

高级用法

localStorage不仅可以存储简单的字符串,还可以存储复杂的数据结构,如对象或数组。为此,可以使用JSON.stringify()将对象转换为字符串进行存储,并使用JSON.parse()将字符串转换回对象进行读取。例如:

存储对象:let user = { name: "张三", age: 30 }; localStorage.setItem("user", JSON.stringify(user));

读取对象: let user = JSON.parse(localStorage.getItem("user"));

实际应用

localStorage的一个常见用途是保存用户的登录状态或个性化设置。例如,一个网站可能会使用localStorage来存储用户的主题偏好或购物车内容。

总的来说,localStorage提供了一个简单而强大的方式来存储数据直到主动删除,这对于需要在用户会话之间保留数据的Web应用程序来说非常有用。

其他

还真没啥了 盼望本项目越来越好!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant