【问题标题】:Is it possible to pull data from HTML5's local storage and save to server database?是否可以从 HTML5 的本地存储中提取数据并保存到服务器数据库?
【发布时间】:2013-07-21 05:22:48
【问题描述】:

我有一个社交网络应用程序的想法,其中一部分想法是将数据从本地存储中提取到服务器数据库中。这样做的原因是说你有一个想法,你想把它放在这个社交应用程序的下一个状态,但是你在任何地方都没有信号和无线。您在应用程序上写下状态并将其保存到本地存储中,以供他们回到可以在线连接手机的地方使用。

然后他们到达一个可以上网的地方,应用程序检测到本地存储发生变化,然后从那里拉取并保存到服务器数据库。

这完全有可能吗,如果可以,您将如何实施? 如果根本不可能,您认为这可能是未来的某个时间吗?

我期待收到您的 cmets 的来信和对此的回答,因为我认为这可能是一场相当大的讨论。

【问题讨论】:

  • 是的,有可能。这正是有多少网络应用使用本地存储(例如离线 Gmail)。

标签: php javascript mysql html local-storage


【解决方案1】:

是的,这是可能的,为什么不呢?当您从本地存储中提取数据时,数据就像任何其他 Javascript 变量一样工作,除了缺少 Internet 连接之外,没有任何限制会阻止您将其发送到服务器。

您将如何实施它?

首先您需要检测连接状态,请参阅this question。因此,当用户尝试更新其状态时,它会检查连接是否在线,如果不在线,则将其保存到本地存储中。

使用链接问题中的方法检测连接何时恢复,然后从本地存储中提取数据并通过将其发送到服务器,然后清除本地存储以防止重复数据已发送。

【讨论】:

  • 非常感谢您的回答,我用谷歌搜索了它并没有找到任何东西,所以这将有很大帮助。谢谢你。 :)
【解决方案2】:

您可以定期检查 Javascript 中的navigator.onLine 以获取设备的在线状态。请注意,虽然

  navigator.onLine == false 

安全地告诉你一个设备离线,

 navigator.onLine == true 

并不一定意味着它可以访问互联网并且可以执行请求,只是它连接到某种网络。

一旦您假设设备未离线,您将发送一个 ajax 请求(我建议使用 jQuery 的 $.ajax 函数),您可以在其中 POST 来自 localStorage 的数据

(localStorage.getItem('dataToPull'))

到一个 PHP 脚本,然后将其插入到您的 MySQL 数据库中。

如果该 ajax 请求失败,并且您确定它没有收到 PHP/MySQL 错误,则可以安全地假设,尽管设备已连接到网络并且 navigator.onLine 为 true,但没有互联网连接。然后你可以做一些错误处理,例如5 分钟后再次轮询设备。

【讨论】:

  • 谢谢你,它会帮助我。
猜你喜欢
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
  • 1970-01-01
  • 2018-11-17
相关资源
最近更新 更多