localStorageでcookieのexpireのようなことをしたい
とある事情でブラウザ上のデータの一部を expire したくなった。イメージとしては cookie の expire みたいなものなんだけど cookie でサーバに送る必要もないし、数が増える可能性があるので localStorage でやりたい。
まず、基本を調べてみると
- cookie は「localhostのcookieをブラウザの機能を使わずにクリアしたくてRFC 6265を勉強したけど無理だった - あーありがち(2016-10-02)」で調べたけど、name=value が基本で、 value の中に文字列で expires を指定することができるが、例えば value が構造を持ったデータだとしたらその中の一部だけ expire するといったことは標準の機能では不可能
- いくつもデータを持ちたい場合は cookie の数が増えてあまり面白くない1
- localStorage には expire の仕組みはない
- sessionStorage は page を開いてから閉じるまでの寿命なので再訪した場合には残っていない
ということになっている。
あれこれ探してみたけど、扱いやすそうなのは
かな。あと見つけたのは
- pamelafox/lscache: A localStorage-based memcache-inspired client-side caching library.
- Radyushin/vue-localstorage
で、有名っぽそうに見える
にはそういう API はなかった。
なるほど。需要がないとはあんまり思わないんだけど、JS は Model 周りがまだまだ弱いのか、自分の探し方が悪いのか。とりあえず localstorage-ttl 試してみようかな。
昨今のブラウザでは気にする必要ないんだっけ? ↩