Когда и почему метод onupgradeneeded вызывается в indexedDB?
Я использую IndexedDB для тестового проекта. Вот пример кода:
var indexedDB = window.indexedDB || window.webkitIndexedDB
||window.mozIndexedDB||window.msIndexedDB;
var request = indexedDB.open("mydb",2),
customerData=[
{ssn:"444-44-4444",name:"Bill",age:35,email:"bill@company.com"},
{ssn:"555-55-5555",name:"Donna",age:32,email:"donna@home.org"}
];
request.onerror = function(event){
};
request.onupgradeneeded = function(event) {
var objectStore = db.createObjectStore("customers",{keyPath:"ssn"});
objectStore.createIndex("name","name",{unique:false});
objectStore.createIndex("email","email",{unique:true});
for(var i in customerData){
objectStore.add(customerData[i]);
}
};
request.onsuccess = function(e) {
};
то, что я действительно не понимаю, когда мой объект запроса работает onupgradeneeded
вместо onsuccess
(предполагая, что ошибок, конечно, нет). Это когда нет хранилищ объектов? Или когда создается новая версия БД?
спасибо
1 ответов
согласно этому : https://developer.mozilla.org/en-US/docs/IndexedDB/Using_IndexedDB?redirectlocale=en-US&redirectslug=IndexedDB%2FIndexedDB_primer у вас уже есть правильный ответ:
onupgradeneeded
вызывается при изменении версии БД: без базы данных на первую версию, первая версия на вторую версию ...
onsuccess
вызывается каждый раз, когда вы делаете новый запрос : даже если схемы базы данных не изменилась.