2013-07-26 58 views
0

我有一個網頁,假設能夠離線工作,並且當我在本地主機上並且沒有互聯網連接時,它完美無缺。當我將我的頁面託管在我的服務器上並脫機運行(斷開互聯網)時,它會引發錯誤。未被捕獲的錯誤:NotFoundError:DOM IDBDatabase異常8(離線)

Uncaught Error: NotFoundError: DOM IDBDatabase Exception 8 
request.onsuccess 

我不知道它爲什麼這樣做。它可以正常工作,當我有互聯網連接。我在Firefox和ie10在線和離線測試,它很好。它並沒有破壞代碼,一切仍然正常,它只是拋出了錯誤,並沒有得到我刷新/加載頁面時呈現的數據。這裏是它抱怨的地方。

var version = 1; 
var request = window.indexedDB.open(webDB.currentProperty, version); 
request.addEventListener('blocked', function() { console.log('blocked'); }); 
console.log(webDB.currentProperty); 
request.onsuccess = function (event) { 
    webDB.database = request.result; 
    // make transactiona reference to the database with read option (read is the 
    default option when none is provided)  
    var transaction = webDB.database.transaction([webDB.currentProperty]); 
    // hide or show elements after data has been populated 
    transaction.oncomplete = function() { 
     console.log("complete"); 
    }; 
    //Get the objectstore (conatains all the object) to do things 
    var objectStore = transaction.objectStore(webDB.currentProperty); 

我檢查了我的chrome版本,它是28,我檢查是否在打開數據庫時遇到阻塞,但我沒有。

編輯

當我明確地給它一個只讀選項

var transaction = webDB.database.transaction([webDB.currentProperty], "read-only"); 

,它拋出一個錯誤類型

Uncaught TypeError: Type error 
request.onsuccess 

回答

0
  • 只讀不是一個適當的typesn開始tx。有3種類型,請參閱mozilla文檔瞭解相關信息。
  • 我會嘗試在您調用indexedDB.open時對db名稱進行硬編碼,因爲某些情況下可能會在您的webDB.currentProperty變量中發生一些有趣的事情。首先進行調試。
+0

〔這裏(https://developer.mozilla.org/en-US/docs/IndexedDB/Using_IndexedDB)它說,它是隻讀的,讀寫和版本的變化。我知道它webDB.currentProperty作品,因爲我檢查它只包含字母數字字符。就像我上面說過的,當我連接互聯網時,它工作得很好,但是一旦我接受它,它就會拋出錯誤。但它仍然有效,在頁面上做些東西並刷新它後,它就會消失。 –