2012-11-14 30 views
1

我在寫一個JavaScript/HTML5的Windows 8應用程序。寫入IndexedDB時偶爾會發生InvalidStateError。我的功能在下面,它發生在第一行。有沒有辦法確保國家是正確的?IndexedDB InvalidStateError,Windows 8

** newEncryptedInfo是一個包含2個字符串參數(暫時)的JSON對象。它形成得當。

function loadData(evt) { 
    var transaction = EncryptedDB.db.transaction("data", "readwrite"); 
    var encryptStore = transaction.objectStore("data"); 
    var addResult = encryptStore.add(newEncryptedInfo); 
} 

回答

2

如果您在創建事務時遇到InvalidStateError,那麼原因通常是因爲db連接已關閉。點擊here瞭解更多信息。

+0

該問題似乎在調用函數我做過:if(EncryptedDB.db){EncryptedDB.db.close();}。不知道爲什麼。切換到if(!EncryptedDB.db){EncryptedDB.db = evt.target.result;}。從那以後沒有見過問題。 – SPSamL

+0

locigal :)。很高興你找到了它。順便說一句,如果你想在indexeddb上使用更多的過濾器選項流利的lib,試試我的linq2indexeddb(http://linq2indexeddb.codeplex.com)。如果你看看Linq2IndexedDBWin8包的塊,你會得到我的lib的Windows 8版本 –