やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

JSでローカルに保存するAPIまとめ

 5種類ある。用途に応じて使い分ける。

API

API Lib 記事,code,DEMO 用途
File System Access API ,, ファイルシステムにアクセスする
IndexedDB API dexie.js ,, ドメイン用データをRDBで保存する
localStorage ,, ドメイン用データをKVSで保存する
CacheStorage,Cache ,, オフラインで閲覧する
cookie js-cookie ,, サーバが求めるデータを保存する

用途

ファイルシステムにアクセスする

 OSのファイルシステムにあるファイルやディレクトリを作成・変更・削除する。

 ほかのAPIはブラウザがデータを管理している。保存されたデータをファイルシステムから参照することは考慮されていない。もしテキストエディタなど別のアプリから利用したくなったときに困る。そこでFile System Access APIを使う。

ドメイン用データをRDBで保存する

 ドメインに対して型をもったデータを保存する。JSのオブジェクト型などがそのまま保存できる。IndexedDB APIを使う。dexie.jsを介したほうが楽だ。大量のデータを扱いたいときに用いる。

ドメイン用データをKVSで保存する

 ドメインに対して文字列データを保存する。キーバリュー形式。localStorageを使う。少しのデータを扱いたいときに用いる。

オフラインで閲覧する

 ドメインのリソースファイルを保存する。オフラインでも閲覧できるようになる。CacheStorageを使う。ふつうServiceWorker APIフレームワーク内で使う。

サーバが求めるデータを保存する

 サーバとクライアントが通信するデータを保存する。サイト制作側はユーザの個人情報を安全に保存させたいときがある。ログイン画面でユーザ名とパスワードを保存するときなどだ。cookieを使う。js-cookieを介したほうが楽だ。

 HTTP通信することが前提である。HTTPヘッダにCookieをセットし、サーバ間でやりとりする。HTTPS通信に限定することができる。これによりデータが暗号化され、セキュアにデータを保存できる。

対象環境

$ uname -a
Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux