Javascript IndexedDB索引未显示在chrome中(使用IDBWrapper)
我使用的是chrome 25和最新版本的 我创建了一个商店:Javascript IndexedDB索引未显示在chrome中(使用IDBWrapper),javascript,indexeddb,Javascript,Indexeddb,我使用的是chrome 25和最新版本的 我创建了一个商店: var countryStore = new IDBStore({ dbVersion: version, storeName: countryTable, keyPath: 'id', autoIncrement: true, onStoreReady: function () { console.log('Country store ready, go ahead!');
var countryStore = new IDBStore({
dbVersion: version,
storeName: countryTable,
keyPath: 'id',
autoIncrement: true,
onStoreReady: function () {
console.log('Country store ready, go ahead!');
americanGivingDB.countryStore.count(function (result) {
console.log("The amount found in the countryStore was " + result);
if(result == 0){
initializeCountryStore(countryStore, countryDeferred);
} else {
countryDeferred.resolve();
}
});
},
indexes: [ {name : "areas", keypath: "area", unique: false, multiEntry:true}, {name: "years", keypath: "year", unique: false, multiEntry: true}]
});
然后我添加了一个大批量:
for(var i = 0; i < lines.length; i++) {
var fields = lines[i].split(", "); // Comma-separated values
valueToAdd = {
id: id,
area: fields[0],
program: fields[1],
year: fields[2],
amount: fields[3]
}
id++;
operations.push( {type: "put", value: valueToAdd});
}
countryCSVxhr.onload = function(e) {
console.log("onload found number of operations to add are " + operations.length);
status("country dataset downloaded, adding to local storage.");
db.batch(operations, function (result) {
status("finished loading the country table");
console.log("finished loading the country table");
americanGivingDB.countryStore.count(function (result) {
status("country dataset added to local storage");
console.log("The amount found in the countryStore was " + result);
countryDeferred.resolve();
});
}, function (error) {
console.log("error", error);
});
}
for(变量i=0;i
然后查询索引:
americanGivingDB.countryStore.query( function(results){
//console.log("finished querying the store " + results);
var returnString = "";
for(var i = 0; i < results.length; i++){
returnString = returnString + results[i].area + " \n";
}
console.log("the area names are: \n" + returnString);
},
{
index: "areas",
keyRange: americanGivingDB.countryStore.makeKeyRange({
upper: "Z"
}),
filterDuplicates: true,
onError: americanGivingDB.onErrorHandler
}
);
americanGivingDB.countryStore.query(函数(结果){
//console.log(“已完成对存储的查询”+结果);
var returnString=“”;
对于(var i=0;i
返回一组空的结果。当我检查chrome中的资源时,索引是空的,我不确定它们是否应该是空的
你知道哪里出了问题吗?我不知道哪里出了问题,但是你可以试试我的库,库固体事务处理
var schema = {
stores: [{
storeName: countryTable,
keyPath: 'id',
autoIncrement: true,
indexes: [ {name : "areas", keypath: "area", unique: false, multiEntry:true}]
}]
}
var countryStore = new ydn.db.Storage('db name', schema);
countryCSVxhr.onload = function(e) {
// process countryData as array
countryStore.put(countryTable, countryData);
countryStore.count(countryTable).done(function (numberOfRecord) {
console.log(numberOfRecord);
});
countryStore.values(countryTable, 'areas', IDBKeyRange.upperBound('Z')).done(function (records) {
console.log(records);
});
};
原来我的问题是打字错误。在为数据存储使用构造函数时,必须非常小心大写。“keypath”应该是“keypath”
var countryStore = new IDBStore({
dbVersion: version,
storeName: countryTable,
keyPath: 'id',
autoIncrement: true,
onStoreReady: function () {
console.log('Country store ready, go ahead!');
americanGivingDB.countryStore.count(function (result) {
console.log("The amount found in the countryStore was " + result);
if(result == 0){
initializeCountryStore(countryStore, countryDeferred);
} else {
countryDeferred.resolve();
}
});
},
indexes: [ {name : "areas", keyPath: "area", unique: false, multiEntry:true}, {name: "years", keyPath: "year", unique: false, multiEntry: true}]
});