KDOC 114: IndexedDBの使い道

この文書のステータス

  • 作成
    • 2024-02-28 貴島
  • レビュー
    • 2024-03-24 貴島

概要

IndexDBにふれる機会があって調べた。使い道を書く。

イントロ

IndexedDBは、ブラウザの機能に備え付けられたキーバリュー型DBである。バリューにはJavascriptオブジェクトを格納する。JavaScriptのAPIを使って機能を利用する。

使いみち

今まで全く見かける機会がない機能であった。何に使われているのだろうか。

例えば、UnityをWebGLにビルドしたものを配信するのに使われている。Unityはゲームプログラムを作るときによく使われるが、ゲームはファイルサイズが大きい。プログラムというよりは、テクスチャが多くを占める。たくさんのオブジェクトがマップの広さだけあり、それぞれにテクスチャがあるのを考えると、大きくなりそうなことが想像できる。

で、そういった巨大ファイルは通信に時間がかかるのでキャッシュを用いて毎回ダウンロードが走らないようにしたい。しかし、ブラウザのキャッシュには制約があって、サイズの制限があって保存できなかったりする。Unityの場合はそういう背景で、制限の少ないIndexedDBに巨大なキャッシュを保存することでその制限を回避するようだ。

ちなみにIndexDBはブラウザのキャッシュとは別なので、通常の流れでキャッシュを削除しても削除されない。Cookieごと全削除か、開発者ツールのIndexedDBから削除する必要がある。

関連