Closed kei615ykhm closed 2 months ago
ユーザー体験とサーバー・データベース要件を考慮しながらCSR
特有の待ち時間と非同期処理を実現するには、ユーザーがダッシュボードのメモ一覧からメモを選択し、モーダルを立ち上げながら裏でデータフェッチと再描画の処理を行うようにするのが最適ではないかと考えました。
そのために、以下のuseSWR
設定を組み合わせてみるのはいかがでしょうか。
revalidateOnFocus: true
を用いてユーザーがアプリにフォーカスしたときに最新データを取得するrevalidateOnReconnect: true
を用いてネットワーク接続が回復したタイミングで再検証を行うopenMemoModal
関数で詳細情報を取得しつつmutate
関数で更新する必要な時に必要なだけのデータを更新することでサーバーの負荷を抑えつつ、自動更新を使用しないことでデータベース要件も満たせますし、ユーザーが待たされていると感じることもない調整ができるはずです。
@niaka3dayo
ユーザー体験とサーバー・データベース要件を考慮しながら
CSR
特有の待ち時間と非同期処理を実現するには、ユーザーがダッシュボードのメモ一覧からメモを選択し、モーダルを立ち上げながら裏でデータフェッチと再描画の処理を行うようにするのが最適ではないかと考えました。そのために、以下の
useSWR
設定を組み合わせてみるのはいかがでしょうか。
revalidateOnFocus: true
を用いてユーザーがアプリにフォーカスしたときに最新データを取得するrevalidateOnReconnect: true
を用いてネットワーク接続が回復したタイミングで再検証を行う- ダッシュボードからメモを選択し、モーダルを開きながら
openMemoModal
関数で詳細情報を取得しつつmutate
関数で更新する必要な時に必要なだけのデータを更新することでサーバーの負荷を抑えつつ、自動更新を使用しないことでデータベース要件も満たせますし、ユーザーが待たされていると感じることもない調整ができるはずです。
@niaka3dayo
考え方はそれで問題ないので、一度それで作ってみるといいと思います
了解しました!
概要・目的
issue: #1 にてご提案いただいた内容に沿って、クライアントサイドでのキャッシュ戦略について議論します。
情報整理と各設定の相性
メモアプリの基本機能として、たとえばパソコンで入力したデータを別の端末で確認したときに情報が更新されていないのはアプリとして致命的な問題になる。そのため、情報が常に最新かつ信頼性が高い状態にするのを重視して設計する。
それを踏まえると、
CSR
が最初の候補、SSR
が次点の候補に挙がる。ただし、メモアプリはSEO
を考慮しなくて良いため、CSR
を使用してクライアントサイドでのキャッシュ戦略を練るのが最善と考える。キャッシュ戦略の方向性
API
を叩いてデータを取得して端末を切り替えた時にデータの更新を行うSupabase
の無料枠で運用することを考慮する