2012-07-12 15 views
4

我是新增的IndexedDB,我遵循本指南IndexedDB Tutorial我只是試圖創建一個數據庫,然後能夠添加幾個條目。這是我迄今爲止所擁有的。「使用indexedDB.open時無法調用未定義的」錯誤「方法'打開'

var db = window.indexedDB.open('FriendDB', 'My Friends!'); 

if (db.version != '1') { 
    // User's first visit, initialize database (name, key, auto increment). 
    db.createObjectStore('Friends', 'id', true); 
    db.setVersion('1'); 
} else { 
    // DB already initialized. 
} 

var store = db.openObjectStore('Friends'); 
var user = store.put({name: 'Eric', gender: 'male', likes: 'html5'}); 

在我的控制檯我得到錯誤「無法調用未定義的‘開放’」我怎麼能得到這個工作?另外,如果網上有更好的資源可以幫助我,因爲我似乎無法爲新手找到關於IndexedDB主題的任何內容。

+0

訪問此鏈接鏈接http://msdn.microsoft.com/en-us/library/jj154905(v=vs.85).aspx – HariHaran 2012-07-12 05:51:49

+0

https://developer.mozilla.org/en/IndexedDB/Using_IndexedDB is一個很好的入門教程。同時請記住,該標準最近已經發生了變化,所以舊的教程可能已經破壞了部分,不同的瀏覽器可能會有不同的實現(Firefox目前是最好的,但Chrome有點落後)。 – dumbmatter 2012-07-12 14:06:49

回答

2

這裏是html5rocks的indexeddb演示,我已經改進在Mozilla Firefox上工作並添加了查看詳細數據和編輯現有數據的功能。裏面有解釋如何在indexeddb中創建數據庫,插入,更新和刪除數據。

https://github.com/denimf/IndexedDbToDo

+0

這裏的JsFiddle - > http://jsfiddle.net/qYMN5/ – Sanchitos 2013-07-24 23:55:21

1

看見包含到setVersion的調用代碼任何時候,它使用過時的語法。不幸的是,我們不得不在規範編寫期間做出這麼大的改變,但它使正確使用IndexedDB變得非常簡單,所以我們認爲它是值得的。

在developer.mozilla.org上有很好的文檔,儘管它可以絕對改進。

+0

onupgradeneeded方法在chrome中仍然不起作用,所以升級數據庫的唯一方法是使用setVersion函數。 – 2012-07-16 11:03:07

+1

對於任何人來說,onupgradeneeded事件現在適用於當前版本的Chrome。 – saille 2013-03-24 23:52:03

相關問題