javascript - 如何保存设置了变量值的js文件?
问题描述
我是一个初学者,所以我缺乏正确的词汇来清楚地表达我想尝试的东西 - 或者搜索它以便出现正确的答案。但我会尝试解释:
我有一个简单的 javascript 应用程序,它有一堆变量,这些变量通过 jQuery ajax 填充来自数据库的值,具体取决于初始用户选择。现在,一旦应用程序正确加载了从数据库中检索到的所有值,我想将其保存在此状态以供离线使用。
如果我对所有变量值进行硬编码,应用程序在没有 Internet 访问的情况下也可以正常工作,但由于它们取决于用户在启动时的选择,因此这并不是一个真正的选择。所以我想,也许我可以将加载的状态保存为 js 文件。有没有这样的技术?
一旦用户单击“下载以供离线使用”,我的后备解决方案将是在 php 中进行艰苦的工作。就像将 js 文件的副本保留为带有变量值占位符的字符串,然后在用户做出初始选择后用数据库中的值替换它们。但老实说,我觉得必须有一个更优雅的解决方案。
解决方案
在浏览器 Javascript 中,出于安全原因,您不能保存文件。但是,有一个调用的 APIlocalStorage
允许您在浏览器中存储持久信息。您可以将所有变量放在一个对象中,将其字符串化为 JSON,然后将其保存在 localStorage 中,然后通过解析 JSON 来检索它们:
// saving variables
var myVariables = {a: 1, b: "foo", c: [4, 5, 6]};
localStorage.setItem("vars", JSON.stringify(myVariables));
// retrieving variables
var retrievedVariables = JSON.parse(localStorage.getItem("vars"));
console.log(retrievedVariables.b); // "foo"
推荐阅读
- python - 如何使用 pandas 数据框作为模板在 SQL Server 数据库中创建表?
- swift - 如何通过 SwiftUI 中的状态变量为形状设置动画?
- html - 如何仅使用 HTML 和 CSS 创建爱尔兰国旗?
- python - 自定义python包的相对导入失败
- spotfire - 更改 Tibco Spotfire 上的搜索规则以进行列搜索
- python-3.x - Python 3 pyad get_members:如何列出超过 1500 个成员
- amazon-web-services - 为 Ansible ec2 动态清单配置多个 AWS 账户
- python - 如何检查某个数字是否在 Pytorch 张量中?
- postgresql - Postgres Checkpointer 进程始终运行
- javascript - 鼠标右键 - 激活输入文件中的粘贴选项