Я не знаю, прав я или нет. Но, как я знаю, я не могу создать транзакцию с изменением версии вручную. Единственный способ вызвать это - изменить номер версии при открытии индексированного соединения БД. Если это правильно, в примере1 и example2 новый объектStore никогда не будет создан?Как создать несколько хранилищ объектов в IndexedDB
Example1
function createObjectStore(name){
var request2 = indexedDB.open("existingDB");
request2.onupgradeneeded = function() {
var db = request2.result;
var store = db.createObjectStore(name);
};
}
Example2
function createObjectStore(name){
var request2 = indexedDB.open("existingDB");
request2.onsuccess = function() {
var db = request2.result;
var store = db.createObjectStore(name);
};
}
Example3 - Это должно работать:
function createObjectStore(name){
var request2 = indexedDB.open("existingDB", 2);
request2.onupgradeneeded = function() {
var db = request2.result;
var store = db.createObjectStore(name);
};
}
Если я хочу создать множественным ObjectStore это в одной базе данных, как я могу получить/выбрать версию базы данных до открытия базы данных? Итак, есть способ автоматизировать этот процесс получения номера версии базы данных?
Есть ли другой способ создать объектStore, отличный от этого, используя обработчик события onupgradeneededed.
Пожалуйста, помогите. Большое спасибо.
Edit:
Вот та же проблема, что у меня есть: https://groups.google.com/a/chromium.org/forum/#!topic/chromium-html5/0rfvwVdSlAs
Спасибо за ответ. Это может сработать. Но мне кажется, что это «глупо», а не программный способ открыть базу данных дважды:/ – user1598696
Возможно, нет другого способа сделать это ... Я подожду и посмотрю. IndexedDB кажется еще очень незавершенным, и некоторые вещи сделаны довольно плохо. – user1598696
Я не понимаю, почему вы хотите узнать версию бета-версии? вы знаете, в какой версии вам нужно открыть базу данных. если версия не соответствует той версии, которую вы предоставили, она даст вам способ обновить вашу базу данных. В этом случае вы узнаете, из какой версии вам нужно обновиться. –