gpt4 book ai didi

php - POS 的离线数据库支持

转载 作者:行者123 更新时间:2023-11-28 02:00:03 27 4
gpt4 key购买 nike

我已经开发这个销售点系统将近一个月了,一直在寻找一种方法来为我的应用程序提供离线支持。我想使用 IndexedDB,但在最初应将哪些数据加载到应用程序方面存在问题。

让我给你一个场景。

我开始交易并输入了一些项目。不幸的是,在我进行交易的时候,雷神之怒摧毁了一座塔,导致网络断开。

在这种情况下,我应该如何构建我的应用程序?

一个。将所有条目直接放入 MySQL 数据库并使用 IndexedDB 进行离线条目。 (问题:断开连接后,初始条目将永远不会恢复。)

B.使用 HTML5 作为收银员交易的主要数据库,并在成功结帐后仅将其传输到 MySQL 数据库。 (问题:大量数据会在系统负载时存储到 IndexedDB。)

我正在考虑选项 B,但无法找到一种方法来最小化从 MySQL 数据库预加载的数据的大小。为什么我需要加载这些数据?唯一标识项目的是项目代码。我在 MySQL 数据库中有数千个项目,将它们加载到 IndexedDB 中太过分了。我需要在输入时获取每个项目的描述、单价、税率、折扣率、促销可用性和库存数量。实时监控也很重要。如果所有这些数据都将加载到 IndexedDB,5mb 是不够的。

非常感谢您的回复!

最佳答案

首先是有 5mb 限制的本地存储,Indexeddb 没有限制,尽管浏览器有能力限制它,当然你的硬盘空间也有限制:)。

第二:如果您确实希望应用程序完全脱机工作,我只会使用 indexeddb。 (例如,离线时启动网络应用程序并对其进行更改。)

我认为你想要的只是连接中断时的回退,但几分钟后你就可以同步了。在这种情况下,我会将数据保存在内存中。这将减轻您保持在线和离线数据库同步的痛苦。当然,如果您真的想提供离线 Web 应用程序,您将需要 indexeddb API。

看看 upshot.js 和 BreezeJS .这是用于跟踪您的实体的库。当您短时间失去连接时,这些框架也有一些回退(比如将数据保存在内存中)。

简而言之,是否选择 indexeddb 取决于以下需求:

  • 数据需要离线可用
  • 即使您关闭 Web 应用程序并在一段时间后重新启动它,更改也必须保留。

希望这能回答您的问题。

关于php - POS 的离线数据库支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14495935/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com