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.