BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GoogleがKey-ValueストレージをChrome 74の組み込みモジュールとして実験

GoogleがKey-ValueストレージをChrome 74の組み込みモジュールとして実験

原文(投稿日:2019/04/23)へのリンク

GoogleがKey-ValueストレージをChrome 74の組み込みモジュールとして実験

Googleは最近、Chromeの将来のバージョンで2つの新しいWICG提案を実装する意向を発表したKVストレージ(Key-Valueストレージ)は、LocalStorageの利便性を実現しながらも、より優れたパフォーマンスを実現しようとしている。その目的は、インポートマップの提案を活用して、これを組み込みモジュールの最初の例として提供することである。

JavaScriptエコシステムでは、データをローカルに保存およびキャッシュするためにばらばらのアプローチをしていた。GoogleのソフトウェアエンジニアでWebプラットフォームの開発に携わっているPhilip Waltonが次のように説明する。

ブラウザベンダやWebパフォーマンスの専門家は、この10年間の大部分でlocalStorageは動作が遅く、Web開発者はそれを使うのをやめるべきだと言ってきました。公平に言うと、これを言っている人々は間違っていません。localStorageは、メインスレッドをブロックする同期APIである。アクセスするたびに、ページがインタラクティブに表示されなくなる可能性があります。問題は、localStorage APIが非常にシンプルで、localStorageに代わる唯一の非同期の選択肢がIndexedDBであることです。IndexedDB(目を向けてみよう)は、その使いやすさや歓迎されたAPIとして知られているわけではありません。

Web Incubator CG(WICG)は最近KV StorageをW3C IndexedDB仕様の一部にすることを推奨した。KV Storageは、ユーティリティはlocalStorageに似ているが、より現代的で、IndexedDBの上位層として実装される。この仕様では、ブラウザベンダが組み込みモジュールとして実装することを義務付けており、IndexedDBはバッキングストアとして使用する。

仕様で提供されているKVストレージAPIの使用例

import { storage } from "std:kv-storage"; // specifier prefix not final

(async () => {
  await storage.set("mycat", "Tom");
  console.assert(await storage.get("mycat") === "Tom");

  for await (const [key, value] of storage.entries()) {
    console.log(key, value);
  }
  // Logs "mycat", "Tom"

  await storage.delete("mycat");
  console.assert(await storage.get("mycat") === undefined);
})();

IndexedDBをサポートするブラウザ用のKVストレージポリフィルがある。

KV Storageモジュールは、JavaScript Standard Libraryイニシアチブおよびインポートマップに対するそのサポートの定義に従って解決される。

インポートマップは新しい概念ではない。AMDなどの以前のJavaScriptモジュールシステムおよび他のプログラミング言語のモジュールシステムの一部であった。インポートマップに含まれる標準のESモジュールは新しい。このインポートマップの提案は、JavaScriptのインポートステートメントとimport()式によって取得されるURLを制御する。それによって、マッピングをインポートしていない状況でも再利用できるようにする。インポートマップにより、シンプルなインポートステートメント、フォールバックモジュールの解決、組み込みモジュール用のポリフィル、そして、フェッチタグ、イメージタグ、リンクタグ間のコンテキストの共有などが可能になる。

この2つの期待される新しい機能の実装に成功すると、将来のバージョンのJavaScriptに機能が追加するプロセスが大幅に改善され、便利なWeb APIが追加されるはずである。インポートマップと組み込みモジュールは、拡張可能なWebマニフェストの欠けている部分を解決するために尽力している。

KV Storageを今すぐ試したい開発者は、ポリフィルを利用するか、Chrome DevかChrome 74のCanaryバージョンをインストールすることができる。これらの機能のメインストリームリリースの前に、開発者は、KV Storageのオリジントライアルに登録することで、これらの機能を特定のドメイン向けにすべてのChrome 74+ユーザが利用できるようにすることができる。

この記事に星をつける

おすすめ度
スタイル

BT