-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use indexedDB instead of localStorage #5439
Comments
#6329 でi18nはindexeddbに保存されるようになった。 こんどはvuexを保存するようにしたい。 window.onstorageが使えないので、タブ間で値を共有するのに何か別の方法が必要になる |
vuex-persistedstateは robinvdvleuten/vuex-persistedstate#60 らしいので、永続化ライブラリを https://www.npmjs.com/package/vuex-persist とかに変える必要あり |
Service Workerへの設定共有はpostMessageでもできるので、必要性は薄くなった |
保存先が複数になるのでちょっと微妙 あと、ストアがpizzaxになったので独自実装にする必要はある |
内容をメモリにロードしておくのは変えず(今と変わらない)、変更を適宜BroadcastChannelで通知してタブ間で同期……みたいな実装で良いかしら |
|
いやでもwhere == accountだけじゃん |
ColdDeviceStorageをIndexedDB化してasync/awaitでやってくのがつらいので、サウンド関連の設定はpizzax化したい |
triage: already resolved? |
yep |
Summary
◎ Service Workerからもアクセスできる
通知をi18nできるようになる
◎ オブジェクトストア(テーブル)をいくつも作れる
軽量化できるかも
▼ 非同期
localeをindexedDBにするとなると、init.tsなどなどを全部async/awaitにしなければならなくなるが、ブロッキングだった部分が速くなるかもしれないし、ブロッキングな関数をPromiseな関数に変更できるきっかけになるかもしれない
コンポーネントでのi18n読み込み=
setLocaleMessage()
を使えばいけそう(未検証)https://kazupon.github.io/vue-i18n/api/#methods
こういう 感じでラッパーライブラリがあるので実装はそこまで難しくはない気がする
The text was updated successfully, but these errors were encountered: