0

Webアプリの作成を検討しています。webapp はオフラインで動作し、接続が利用可能になったときにデータを同期できる必要があるため、localStorage を使用する必要があると思います。

ただし、アプリを複数のタブで複数回開くユーザーが心配です。これには合理的なユースケースはないと思いますが、単一の localStorage への並列アクセスとそれによる競合状態が発生することを恐れています。

最も簡単な方法は、一度実行する動作を実装することです。そのため、ユーザーが (かなり誤って) 2 回目にアプリを開こうとすると、警告が表示されるか、理想的には既存のアプリに切り替えられます。これが UX の聖杯ではないことはわかっていますが、UX と開発コストの間の妥当なトレードオフかもしれません。ただし、適切に実装する方法がわかりません。ウィンドウ名を使用できるかもしれませんが、これは簡単に壊れる可能性のあるハックのように見えます。

または、同じページの複数のインスタンスを許可する、より高度なバリアントを考えていますが、次のとおりです。

  • それら全体でデータのローカル コピーを同期し、
  • バックグラウンド同期のインスタンスが 1 つだけ保証されます

これは ServiceWorker のタスクのように見えますが、互換性は限られています。私は主にiOSについて心配しています.iOSはベータ版で新しいサポートを提供しているようです.

どのアプローチを選択し、それを適切に実装する方法がわかりません。醜いハックでない限り、または大きな欠点がない限り、おそらく簡単に見えるアプローチを採用します。

これに関するいくつかのコンテキスト: これは、少数のユーザーが自分のデバイスで使用することが予想される内部アプリです。そのため、主に Android と iOS のさまざまなデバイスを想定しています。ラップトップでも使用できます。このアプリは、ストレージ バックエンドとして機能する Google スプレッドシートに簡単にデータを入力するための単純化されたドメイン固有のインターフェイスです。アプリのユーザーを少し教育することはできます (これが、私が 1 回限りの実行制限を許容できると考える理由です) が、彼らに IT スキルを期待するべきではありません。したがって、ユーザーが webapp を 2 回開かないことに依存したくありません。

4

0 に答える 0