2013-04-11 79 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如果你需要從其他地方應用程序中訪問數據。

相關問題