generated at
✅project IDとuser IDをcacheする


現状
ScrapboxのWebSocketに接続するたびに、api/projects/:projectnameapi/users/meを叩いてproject ID (scrapbox)user ID (scrapbox)を取得している

どうしたいか
project ID (scrapbox)user ID (scrapbox)を一度取得したら、タブがリロードされるまで保持しておく
理由
毎回毎回fetchするのが無駄
これらのIDがsession中に変更されることはまずない
user ID (scrapbox)はaccount切り替えのとき変更される
まず切り替わることは滅多にない
あったとしても、ページ全体がreloadされてscriptの再読み込みが走るだろうから、気にする必要がない
そういえばlogin accoutとは別のuserのidで書き込もうとしたらどうなるのだろうか?
project ID (scrapbox)はproject nameと紐付けて持っておけばいい
project nameが変わることは早々ない
project IDはproject nameが変わっても同一なのだろうか?takker
同一な気もする
まあ何れにせよ気にする必要はないだろう
2projects間で名前を交換した場合がまずい?
projects
beforeafter
1/project-A ID-A/project-B ID-A
2/project-B ID-B/poject-A ID-B
引数で指定されたproject nameを使って毎回web socketに接続する関数の場合
cacheなし
変更前1のprojectに接続していた場合、変更後は2のprojectに接続することになる
cacheあり
変更後も1のprojectに接続する
一度取得したproject idを使い回す関数の場合
joinPageRoom() の挙動
変更前1のprojectに接続していた場合、変更後でも1のprojectに接続することになる
同一IDのprojectに接続するのを選んだほうが仕様を統一できるな
cacheすることにしよう
↑説明が分かりづらい
そのうち直す

2022-02-10
16:01:59 merged


#2022-02-10 15:33:12