この POS システムをほぼ 1 か月間開発してきましたが、アプリケーションのオフライン サポートを実装する方法を見つけるのに苦労しました。IndexedDB を使用したいのですが、アプリケーションに最初にロードするデータに問題があります。
シナリオをあげましょう。
トランザクションを開始し、いくつかのアイテムを入力しました。残念ながら、Thor の怒りによってタワーが破壊され、トランザクションの最中にネットワークが切断されてしまいました。
そのシナリオでは、アプリケーションをどのように構築すればよいでしょうか?
A. すべてのエントリを MySQL データベースに直接配置し、オフライン エントリには IndexedDB を使用します。(問題: 切断後に最初のエントリが戻されません。)
B. HTML5 をキャッシャー トランザクションのプライマリ データベースとして使用し、チェックアウトが成功した後にのみ MySQL データベースに転送します。(問題: システム負荷時に大量のデータが IndexedDB に保存されます。)
オプション B を検討していますが、MySQL データベースからプリロードされたデータのサイズを最小化する方法が見つかりません。これらのデータをロードする必要があるのはなぜですか? アイテムを識別する唯一のものは、アイテム コードです。MySQL データベースに何千ものアイテムがあり、それらを IndexedDB にロードするのはやり過ぎです。入力時に、すべての商品の説明、単価、税率、割引率、プロモーションの有無、在庫数を取得する必要があります。リアルタイム監視も重要です。これらすべてのデータが IndexedDB にロードされる場合、5 MB では不十分です。
ご回答ありがとうございます。