HTML5のローカルストレージとWinRTのローカルストレージ

違いがよくわからないので調べました。

結論は

  • ローカルコンテキストでどちらも使える
  • Webコンテキストでどちらも使える(iframeで読み込んだのはローカルのhtmlだった。それ以外の場合はわからない。)
  • APIは別(どっちかがどっちかへデリゲートみたないなこともしていない)
  • 保存される場所は別

ドキュメント的には、local storageという用語でWinRTのローカルストレージを指している(というか、HTML5のローカルストレージへの言及無し)

コンテキストの話はここに書いてある


特に理由がない限り、WinRTのローカルストレージを使っておけば間違いない感じ。


APIや保存される場所の違いは以下のとおり。

HTML5のローカルストレージ

jsのコード
window.localStorage.test = 'hello, this is a window.localStorage value.';
保存される場所
  • C:\Users\ユーザー名\AppData\Local\Packages\a8b36c9d-7723-4dd2-8b50-5e9700fe6820_xmsjtxmjdarfg\AC\Microsoft\Internet Explorer\DOMStore\7OJEPND7\a8b36c9d-7723-4dd2-8b50-5e9700fe6820-xmsjtxmjdarfg[1].xml

(a8b36c9d-7723-4dd2-8b50-5e9700fe6820はPackage Nameです)

ファイルの中身
<root><item name="test" value="hello, this is a window.localStorage value." ltime="899616736" htime="30221859" /></root>

WinRTのローカルストレージ

jsのコード
WinJS.Application.local.writeText("test.txt", "hi, this is a WinJS.Application.local value.");
保存される場所
  • C:\Usersユーザー名\AppData\Local\Packages\a8b36c9d-7723-4dd2-8b50-5e9700fe6820_xmsjtxmjdarfg\LocalState\test.txt
ファイルの中身
hi, this is a WinJS.Application.local value.