Javascript IndexedDB中的两个查询
我对这个代码有问题Javascript IndexedDB中的两个查询,javascript,windows-8,cordova,indexeddb,Javascript,Windows 8,Cordova,Indexeddb,我对这个代码有问题 function checklistAntesdesalirUsuario() { if (plataforma == plataformaW8) { while (db == null) db = abrirDB(); var transactionUsuario = db.transaction(storeCLAntesDeSalirUsuarioNombre, "readonly"); var transaction = db
function checklistAntesdesalirUsuario() {
if (plataforma == plataformaW8) {
while (db == null)
db = abrirDB();
var transactionUsuario = db.transaction(storeCLAntesDeSalirUsuarioNombre, "readonly");
var transaction = db.transaction(storeCLAntesDeSalirNombre, "readonly");
var objectStoreAntesDeSalirUsuario = transactionUsuario.objectStore(storeCLAntesDeSalirUsuarioNombre);
var objectStoreAntesDeSalir = transaction.objectStore(storeCLAntesDeSalirNombre);
var requestUsuario = objectStoreAntesDeSalirUsuario.openCursor();
var request = objectStoreAntesDeSalir.openCursor();
var cursor;
var cursorUsuario;
var count = 0;
var i = 0;
var cargadoUsuarios = false;
var queryChecklistAntesdesalirUsuario = new Array();
request.onsuccess = function (evt)
{
cursor = evt.target.result;
seguir();
};
request.onerror = function(evt)
{
console.log("ERROR!");
}
requestUsuario.onsuccess = function (evt2)
{
cursorUsuario = evt2.target.result;
cargadoUsuarios = true;
seguir();
};
requestUsuario.onerror = function(evt)
{
console.log("ERROR!");
}
function seguir()
{
if (!cursor || !cargadoUsuarios)
return;
if (cursorUsuario && cursor.value.id_check == cursorUsuario.value.id_check) {
cursorUsuario.continue();
}
else {
cursor.continue();
}
if (cursor && cursorUsuario && cursor.value.id_check == cursorUsuario.value.id_check) {
var antesdesalir = new CLFinal(cursor.value.id_check, cursor.value.descripcioncheck, cursorUsuario.value.tarearealizada);
queryChecklistAntesdesalirUsuario[i] = antesdesalir;
i++;
pintarListaChecklistAntesdesalirUsuario(queryChecklistAntesdesalirUsuario);
}
}
}
我尝试的是从两个存储器中获取数据。有时“cursor”获取数据,当“cursor.continue()”执行时是正常的,但有时会崩溃
我不知道该怎么办
有人能帮我吗?
谢谢 你能解释一下你想完成什么吗 为什么是2笔交易?你可以用它做任何事。只需打开范围中包含两个objectstores的事务 为什么有两个游标?您只能使用一个,并通过使用get在第二个对象存储中检索所需的值。您可以在主键上或使用索引执行此操作
var transaction = db.transaction([storeCLAntesDeSalirUsuarioNombre, storeCLAntesDeSalirNombre], "readonly");
var objectStoreAntesDeSalirUsuario = transaction.objectStore(storeCLAntesDeSalirUsuarioNombre);
var objectStoreAntesDeSalir = transaction.objectStore(storeCLAntesDeSalirNombre);
我尝试打开这两个ObjectStore,但没有结果。你能给我举个例子吗?谢谢我在帖子中添加了一个例子