【问题标题】:Electron save user changes on page电子在页面上保存用户更改
【发布时间】:2019-06-27 13:26:18
【问题描述】:

我的电子应用程序有问题。我使用window.loadUrl() 导航投掷页面。在某些页面上,用户需要输入一些数据来保存。问题是当用户移动到另一个页面(在他向输入等中添加了一些数据之后)并且返回后没有检测到任何更改并且电子只是加载没有用户数据的 HTML 文件。如何存储这些数据并为用户页面提供他先前添加的数据?谢谢

【问题讨论】:

  • 这取决于数据/ URL 的来源。你需要一个数据库。

标签: javascript node.js angularjs electron


【解决方案1】:

对于本地解决方案,您可以将数据存储在几种数据类型中:

  • localStorage – 在页面之间以及浏览器关闭后持续存在。根据W3 spec,仅应用户请求删除。
  • sessionStorage – 关闭选项卡/页面后或根据W3 spec 的用户请求删除。

您可以在加载/卸载页面时加载数据。

// Save the data
localStorage.setItem('userData', JSON.stringify(data));

// Load the data
let data = JSON.parse(localStorage.getItem('userData') || {});

注意:这仅适用于渲染进程,不适用于主进程。


对于远程解决方案,您需要将数据发送到 Web 服务器,在该服务器上处理数据并将数据保存到远程位置。 API 是发送这些数据的好方法。

使用唯一标识符(例如用户 ID)发送/请求数据。

// Save the data
fetch('http://my-website.com/save/123456', { // 123456 = userid
  method: 'post',
  body: JSON.stringify(data)
})

// Get the data
fetch('http://my-website.com/load/123456')
  .then(resp => resp.json())
  .then(json => { data = json })

【讨论】:

    猜你喜欢
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 2016-06-25
    • 2011-12-09
    • 2021-03-26
    相关资源
    最近更新 更多