离线网络应用程序。如何存储数据?

2023-11-25

介绍:

应用程序必须能够完全离线运行、在本地存储数据并在有互联网连接时通过 AJAX 将其发布到网上 - 这可能是几天后。

问题:

如何使用Javascript存储数据?

补充笔记:

  • 我不想使用任何服务器端技术。
  • 它必须像数据库一样安全。我读过有关 cookie 和 html5 存储的内容,但没有一个听起来令人信服。

如果您支持现代浏览器,您可以使用HTML5 本地存储.

持久本地存储是本机客户端应用程序相对于 Web 应用程序具有优势的领域之一。对于本机应用程序,操作系统通常提供一个抽象层,用于存储和检索特定于应用程序的数据,例如首选项或运行时状态。这些值可能存储在注册表、INI 文件、XML 文件或根据平台约定的其他位置。如果您的本机客户端应用程序需要键/值对之外的本地存储,您可以嵌入自己的数据库、发明自己的文件格式或任意数量的其他解决方案。

Example

// Save data to a the current session's store
sessionStorage.setItem("username", "John");

// Access some stored data
alert( "username = " + sessionStorage.getItem("username"));

// Get the text field that we're going to track
var field = document.getElementById("field");

// See if we have an autosave value
// (this will only happen if the page is accidentally refreshed)
if ( sessionStorage.getItem("autosave")) {
   // Restore the contents of the text field
   field.value = sessionStorage.getItem("autosave");
}

// Check the contents of the text field every second
setInterval(function(){
   // And save the results into the session storage object
   sessionStorage.setItem("autosave", field.value);
}, 1000);

浏览器兼容性


旧版浏览器

Use Polyfill.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

离线网络应用程序。如何存储数据? 的相关文章

  • dojo dijit.form.DateTextBox 约束不起作用,datetextbox

    嗨 我是 javascript 和 dojo 的新手 我正在尝试使用两个带有下拉日历的 dijit DateTextBox 来建立数据库查询的日期范围 一旦选择了开始日期或结束日期 我想限制可用的日期 以便不可能选择按时间顺序排列在开始日期
  • 使用 vscode 调试器调试 next.js

    我已经使用安装了一个项目创建下一个应用程序 https github com segmentio create next app 我需要使用我的编辑器 vscode 调试服务器端渲染 所以我访问过vscode recipes 如何调试 ne
  • TypeError: props.render 不是一个函数(React hook 形式)

    我将方法作为我用react hook form制作的形式的道具传递 当从react hook form添加控制器时 它给了我 TypeError props render不是一个函数 我在网上找不到任何解决方案 因此感谢任何帮助 impor
  • 在 Vue.js 中从父组件执行子方法

    目前 我有一个 Vue js 组件 其中包含其他组件的列表 我知道使用 vue 的常见方式是将数据传递给孩子 并从孩子向父母发出事件 但是 在这种情况下 我想在子组件中的按钮出现时执行子组件中的方法 parent被点击 哪种方法最好 一种建
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 如何重置使用 JavaScript 更改的 CSS 属性?

    我的导航按钮的宽度从 100px 增加到 150px 当鼠标悬停在 nav li hover width 150px 但是使用 javascript 我已经做到了 无论选择哪个选项 宽度都将继续为 150px 当选择每个选项时 它会使其他选
  • 如何防止 Iframe 在与浏览器交互后弄乱浏览器的历史记录?

    因此 就我而言 我使用 Iframe 将 Grafana 附加到我的页面 这为我提供了漂亮且易于使用的图表 可以注意到 每次在图表上进行放大或缩小 使用鼠标单击 交互后 Grafana 的 Iframe 都会在我的 Angular 页面上触
  • 使用 Angular 下载具有动态 src 的脚本

    Angular 提供了通过动态名称动态加载模板的方法ng include 该部分中的内联 JS 和 CSS 可以正常加载 但没有一个好的方法来下载带有动态 url 的脚本 我们需要下载脚本 相对于调用它们的 html 部分的路径 即我们有一
  • JavaScript 重定向到新窗口

    我有以下代码 它根据下拉列表的值重定向到页面 我如何使其在新窗口中打开 function goto form var index form select selectedIndex if form select options index
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • 如何在react-native中获取Text组件的onPress值

    我是一名新的 React Native 开发人员 我想使用 onPress 获取 Text 组件的值并将其传递给函数
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 为 illustrator 导出脚本以保存为 web jpg

    任何人都可以帮我为 illustrator CC2017 编写一个脚本 将文件以 JPG 格式导出到网络 旧版 然后保存文件并关闭 我有 700 个文件 每个文件有 2 个画板 单击 文件 gt 导出 gt 另存为 Web 旧版 然后右键文
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • Javascript 纪元时间(以天为单位)

    我需要以天为单位的纪元时间 迄今为止 我已经看到过有关如何翻译它的帖子 但几天后就没有了 我对纪元时间很不好 我怎么能得到这个 我需要以天为单位的纪元时间 我将解释为您想要自纪元以来的天数 纪元本身是第 0 天 或第 1 天的开始 无论您如
  • Safari 支持 JavaScript window.onerror 吗?

    我有一个附加到 window onerror 的函数 window onerror function errorMsg url line window alert asdf 这在 firefox chrome 和 IE 中工作正常 但在 s
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • PHP 添加 2 个小数点数字(金钱)会得到错误的总金额结果

    我的 MySQL 数据库中有一个客户发票表 其中有一个名为 价格 的 DECIMAL 10 2 字段 当在 php 中获取这些值并计算总金额时 例如 在脚本中 totalAmount 0 initialised them to while
  • iOS - 从指数+模创建 SecKeyRef

    我想通过使用指数和模数作为私钥来解密 iPhone 上的 RSA 编码 blob 在 Java 使用 javax crypto 中 这可以通过如下代码轻松实现 1 key RSAPublicKeySpec keySpec new RSAPu
  • 使用 Maven 强制重新下载发布依赖项

    我正在开发一个依赖于 X 的项目 X 又依赖于 Y 我曾经在项目的 pom xml 中明确包含 Y 然而 它没有被使用 为了让事情变得更清晰 我将它作为依赖项添加到 X 的 pom 中 X 被标记为发布依赖项 问题是 从我的项目的 pom
  • 如何自动生成proguard-android.txt?

    阅读所有精彩的新事物Android 的 ProGuard 改进做 我切换到新方案取消注释在新创建的项目中添加以下行 proguard config sdk dir tools proguard proguard android txt pr
  • 控制 Magento API 调用的结果数量

    我有一个程序 用于通过 API 将 Magento 商店连接到后端库存控制系统 目前它的作用是查询 Magento API 中所有处于 Pending 状态的订单 将它们插入后端系统 然后将它们的状态设置为 Magento 中的 正在处理
  • 如何创建快捷方式以从命令行启动具有管理员权限的应用程序?

    我有一个安装程序 Inno Setup 它将我的应用程序安装到用户定义的路径 在安装例程结束时 我想创建一个以管理员权限启动应用程序的快捷方式 该解决方案适用于从 winXP 到 Win7 的所有 win 版本 我可以做什么来实现这个目标
  • 根据 Pandas 的条件重置累计总和

    我有一个像这样的数据框 customer spend hurdle A 20 50 A 31 50 A 20 50 B 50 100 B 51 100 B 30 100 我想计算累积的附加列 当累积总和大于或等于以下障碍时 该列将根据同一客
  • 函数隐式参数在传递给高阶函数后不再如此

    在 Scala 中 您可以执行以下操作 def foo implicit v Int println v def h x Int implicit val i Int x foo h 42 gt 42 h呼叫得到foo作为闭包的引用 尝试通
  • Django:ValueError:无法创建表单字段,因为尚未加载其相关模型

    我正在处理的 Django 项目遇到一些问题 我现在有两个应用程序 它们需要相当多的重叠 我真的只开始了第二个项目 称为workflow 我正在尝试为该申请制作第一份表格 我的第一个应用程序叫做po 在里面workflow应用程序我有一个名
  • “cout << cout” - 输出代表什么?

    经过一整天的编码后 我不小心写了 cout lt lt some text lt lt cout 代替 cout lt lt some text lt lt endl 现在它打印出一个内存地址 它指向什么 std cout是一个实例std
  • 如何使用 matplotlib.pyplot 更改图例字体大小

    这里有一个简单的问题 我正在尝试使用以下方法获取图例的大小matplotlib pyplot变小 即文本变小 我正在使用的代码是这样的 plot figure plot scatter k sum cf color black label
  • Spring OAuth:带有授权服务器后端的资源服务器

    我想开发两项独立的服务 一项用于业务 一项用于使用 Spring OAuth 2 进行用户身份验证 我们将它们称为业务服务和 OAuth 服务 现在 如果请求未经过身份验证 我希望将业务服务委托给 OAuth 服务 客户端应用程序 Andr
  • 如何将 ProcessBuilder 输出重定向到字符串?

    我正在使用以下代码来启动流程构建器 我想知道如何将其输出重定向到String ProcessBuilder pb new ProcessBuilder System getProperty user dir src generate lis
  • 检查 Ruby 中的整数数组是否递增

    我想检查排序后的数组值是否递增 1 例如 1 2 3 4 5 TRUE 1 2 8 9 10 FALSE 非常感谢任何建议 array 1 2 4 3 array sort each cons 2 all x y y x 1
  • 如何在字典理解中使用 if/else?

    Python 2 7 中是否存在一种方法可以制作如下内容 something if true if condition else something if false for key value in dict items 我知道你可以用
  • 设置 JAR 文件的类路径

    我最近刚刚使用 Eclipse 创建了 Java 项目 需要 2 个 JAR 文件 phiget21 jar 和 mysql jar 在 Eclipse 中运行程序时一切正常 并且我注意到 jar 文件保存在 lib 文件夹中 我很快就要将
  • DB2 MERGE 语句错误

    我尝试了以下几种变体 但仍然出现错误 有什么方法可以解决这个问题 DB2 10 1 用于 z OS V10 的 DB2 对于以下 MERGE INTO TRGT t USING SRC s ON t ACCTID s ACCTID AND
  • Swift 的 if let 是如何评估的?

    我在 Swift 网站和这里的各种帖子上看到了这段代码 我正在尝试掌握基础知识 这条线如何评价 if let name optionalName 我很困惑 因为它不是 name 可选名称 它正在分配值 那么它如何报告 true 和 当你用
  • 限制在给定时间开放的承诺数量

    以下 TypeScript 执行每个调用doSomething action 一次一个 这意味着列表中的第二项在第一项完成之前不会被调用 async performActionsOneAtATime for let action of li
  • 离线网络应用程序。如何存储数据?

    介绍 应用程序必须能够完全离线运行 在本地存储数据并在有互联网连接时通过 AJAX 将其发布到网上 这可能是几天后 问题 如何使用Javascript存储数据 补充笔记 我不想使用任何服务器端技术 它必须像数据库一样安全 我读过有关 coo