它是否是一个“坏主意”的问题是相当主观的,所以可能不会那是正确的场地。
但是,就Windows Store应用程序如何处理存储的文件而言,如果使用Windows.Storage.ApplicationData.current.localFolder创建和/或编辑文件,这些文件将一直可用,直到用户卸载该应用程序。如果您将应用的更新推送到商店,并且用户下载并安装更新,则这些文件将保留在用户的计算机上,除非您以编程方式明确修改它们。
在我构建的两个应用程序中,我利用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调用以获取数据,然后创建一个绑定列表并将其传递回包装在承诺中的调用方(承诺代码未显示)。如果文件存在,并且请求不是刷新,我只是解析文本文件并从中创建绑定列表。
希望有帮助!
谢谢,这基本上是我需要听到:) – mat
很高兴我可以帮助! – devhammer