2013-04-11 56 views
1

我为某人创建了Windows 8应用程序(使用HTML 5和JavaScript),并且他们已经改变了我对数据存储的要求,并且我可以使用一些指导。我需要的是一个数据源,它将仅保留给本地用户,而不会在数据库或云中联机。用户将被分配安装了应用程序的平板电脑,并且他们将通过表单输入数据以自定义其本地副本。在Windows 8应用程序中本地保存数据的最佳方法

这里是我的要求:

- 数据必须通过应用程序安装在设备上的终身持续存在。

- 我需要能够在一定程度上查询数据。我基本上已经获得了大约15-20个表单,它们将接受输入数据,然后形成一个主表单,用于填充这15-20个“子表单”以填充下拉式选择选项。

-Size不应该是一个问题,它是所有的文本数据,并没有太多它会被输入。在应用程序的整个生命周期内,看不到这个数字超过了几百MB。

我已经研究了XML,indexedDB(听起来不错,但没有发现任何类型的保证,这将继续存在)和应用程序数据(本地),这在我的阅读能力中似乎非常有限。

您认为我最好的选择是什么?任何建议将不胜感激。

谢谢。

回答

1

这应该有助于

(function() { 
    "use strict"; 
    var page = WinJS.UI.Pages.define("/html/index.html", { 
     ready: function (element, options) { 
        //do your things 
       } 
    }); 

    var roamingFolder = Windows.Storage.ApplicationData.current.roamingFolder; 
    var afile = "FileToStoreStuff.txt"; 

    function makefile() { 
     roamingFolder.createFileAsync(afile, Windows.Storage.CreationCollisionOption.replaceExisting) 
      .then(function (file) { 
       return Windows.Storage.FileIO.writeTextAsync(file); 
      }) 
    } 

    function fileRead() { 
     roamingFolder.getFileAsync(filename) 
      .then(function (file) { 
       return Windows.Storage.FileIO.readTextAsync(file); 
      }).done(function (text) { 
        //do stuff 
       ); 
    } 

})(); 

这种假定您的数据可能会改变。如果没有,你能适应不同的方法,例如用像更换roamingFolder变量:

var localSettings = applicationData.localSettings; 
var localFolder = applicationData.localFolder; 

看看在dev docs如果你需要从其他地方应用程序中访问数据。

相关问题