それが「悪い考え」かどうかという問題は非常に主観的なものであるため、おそらく適切な場所ではありません。
ただし、Windows ストア アプリが保存したファイルを処理する方法に関しては、Windows.Storage.ApplicationData.current.localFolder を使用してファイルを作成または編集する場合、ユーザーがアプリをアンインストールするまで、これらのファイルを使用できます。アプリの更新をストアにプッシュし、ユーザーが更新をダウンロードしてインストールした場合、プログラムで明示的に変更しない限り、ファイルはユーザーのコンピューターに残ります。
私が作成した 2 つのアプリでは、localFolder を利用してアプリのデータの JSON 表現を保存し、起動時間を最小限に抑え、アプリが起動して初期 UI をユーザーに表示したら、バックグラウンドでデータを更新します。 .
私のコード(おそらく少し最適化される可能性があります)は次のようになります。
appData.current.localFolder.createFileAsync("leaderboard.txt",
Windows.Storage.CreationCollisionOption.openIfExists)
.then(function (file) {
leaderboardFile = file;
return Windows.Storage.FileIO.readTextAsync(file)
})
.then(function (fileContents) {
cachedLeaderboard = fileContents;
if (!cachedLeaderboard || isRefresh) {
return WinJS.xhr(xhrOptions)
}
else {
cachedLeaderboard = JSON.parse(cachedLeaderboard);
List = new WinJS.Binding.List(cachedLeaderboard);
completed(List);
}
})
.then(function (result) {
if (result) {
var items = JSON.parse(result.responseText).d;
localLeaderboard = items;
return Windows.Storage.FileIO.writeTextAsync(leaderboardFile,
JSON.stringify(localLeaderboard))
}
})
.then(function () {
if (!localLeaderboard)
localLeaderboard = cachedLeaderboard;
List = new WinJS.Binding.List(localLeaderboard);
completed(List);
})
基本的に、コードは Leaderboard.txt ファイルが存在するかどうか (または呼び出しがデータの更新であるかどうか) を確認し、存在しない場合は XHR 呼び出しを行ってデータを取得し、バインディング リストを作成してそれをpromise でラップされた呼び出し元 (promise コードは表示されません)。ファイルが存在し、要求が更新でない場合は、テキスト ファイルを解析し、そこからバインディング リストを作成します。
それが役立つことを願っています!