OKですので、バックエンドAPIを呼び出すオフラインの最初のアプリケーションがあります。コードを使用してServiceWorkerの同期を保留にすることはできますか?
サービスワーカーの同期を使用して、アプリケーションがオフラインのときにAPIへの呼び出しをキャッシュし、ブラウザがオンラインに戻ったときにこれらの呼び出しを処理したいとします。
複雑なのは、API呼び出しを行うときに有効なOWINトークンを持つ必要があるということです。
解決策があります。必要なときにトークンを取得することができます。outlined hereです。ユーザーあたり1つのアクティブなセッションしか許可しないため、これはアプリケーションでは機能しません。 コード内にトークンがあると、現実世界のユーザーがアプリケーションで忙しくなる危険があります。
これは問題です: - Service-Workerの同期を以下のようなコードで一時停止することはできますか?
この時点で、同期処理は処理が必要なすべての呼び出しを追跡し、いずれの処理も行わないことが重要です。また、追加の同期呼び出しは「キューに追加」する必要があります。
- 次のユーザーが有効なOWINトークンを取得すると、同期プロセスに「通常通り」続行するように指示できます。
これまでのところ、私のグーグルグーグルはこれを明示的に扱うものは何も返しません。ドキュメンテーションのほとんどは、これが不可能であることを示唆しています。
これが可能かどうかは誰にも分かりますか?
これらのトークンはどれくらいの期間存在しますか? 「1人のユーザーに1つのアクティブなセッションしか許可しない」 - 複数のタブで失敗するという意味ですか?単一のページからフェッチを重複させて同じ問題を回避するにはどうすればよいですか? –
ベアラのクッキーとしてトークンをブラウザに保存します。 これは、すべてのページとすべてのタブで同じトークンが有効であることを意味します(ユーザーがブラウザを閉じない限り、または「ログアウト」メニューオプションを選択した場合)。 –
ここでは同じソリューションを使用できませんでしたか?トークンをIndexedDBに入れ、サービスワーカーからアクセスします。 –