ブラウザの自動保存はどこに保存され、どんなときに消えるのか

Markdownのコラム

「保存されました」と出るとき、その中身は実際どこにあるのか。
サーバーに送っていないツールの場合、答えは「そのブラウザの中」です。

保存先はlocalStorageと呼ばれる領域で、ブラウザがサイトごとに用意している保存棚のようなものです。

同じブラウザの同じサイトにしか残らない

localStorageはサイト単位で区切られています。
あるサイトが保存した内容を、別のサイトから読むことはできません。

同時に、これは次のことも意味します。

  • 別のブラウザで開くと、保存内容は無い(ChromeとFirefoxは別の棚)
  • 別の端末で開くと、保存内容は無い(同期はされない)
  • シークレットモードで開いた内容は、ウィンドウを閉じた時点で消える

クラウド同期のあるサービスに慣れていると、この挙動は不便に見えます。
ただ、入力内容を外に送らない代わりに得ているものでもあります。

消えるのはどんなときか

保存内容が失われる代表的なケースは3つです。

1つ目は、ブラウザの閲覧データの消去です。
「Cookieと他のサイトデータ」を消す操作にlocalStorageも含まれます。キャッシュだけを消す設定であれば残ります。

2つ目は、容量の上限です。
localStorageに入れられる量はブラウザによって決まっており、無制限ではありません。上限に達すると書き込みが失敗します。

3つ目は、そもそも書き込めない場合です。
ブラウザの設定でサイトデータを保存しない指定になっていると、書き込み自体ができません。

LiteMDでは、localStorageが使えない環境でもエディタが止まらないよう、メモリ上の一時領域に切り替える作りにしています。
ただしメモリ上の内容はタブを閉じると消えます。動き続けることと、保存されることは別です。

保存のタイミング

LiteMDの自動保存は、入力が止まってから1.5秒後に走ります。
1文字ごとに書き込むと処理が重くなるため、少し待ってからまとめて保存する形です。

そのため、入力した直後にタブを強制終了すると、最後の数秒ぶんが保存されていないことがあります。

なお、同じブラウザで同じサイトを複数タブ開いている場合、片方の保存がもう片方に反映されます。
別々の下書きを2つのタブで並行して書く、という使い方はできません。

大事な文書はファイルに落とす

ブラウザの自動保存は、書きかけを守るための機能です。
保管のための機能ではありません。

数日以上残しておきたい文書なら、書き終えた時点で .md ファイルとして書き出しておくのが確実です。
書き出しておけば、ブラウザを変えても端末を変えても読めます。

ブラウザだけで動くMarkdownエディタ

LiteMDは入力したテキストを外部に送信しません。読み込みも変換もプレビューも、すべてブラウザの中で完結します。

エディタを開く