现在在显示 IndexedDB 对象时遇到问题。请有人帮助做同样的进展。在我的情况下,一旦我启用离线图像将从动态缓存中显示,但 indexedDB 看起来是空对象。这样可以帮助我显示 IndexedDB 中的图像。下面是我尝试过的代码:
function createCard(data)
{
var asd = data;
$.each(asd, function(index, data) {
var template='<a href="viewexpense1.html class="expenseItem">\n\
<div class="itemReceipt">\n\
<img src="'+data.image+'">\n\
<span class="itemCategory"><img src="images/meals.png"></span>\n\
</div>\n\
<div class="expenseName singleLine">\n\
<h3>'+data.tittle+'<img src="images/sync.png"></h3>\n\
</div>\n\
<div class="clearfix"> </div>\n\
</a>';
$('#reportContent').append(template);
});
}
var url='https://pwa-cssi.firebaseio.com/ posts.json';
var networkDataReceived = false;
fetch(url)
.then(function(res)
{
return res.json();
})
.then(function(data)
{
networkDataReceived =true;
console.log('from web',data);
var dataArray=[];
for(var key in data)
{
dataArray.push(data[key]);
}
console.log(data)
createCard(dataArray);
});
if('caches' in window)
{
caches.match(url)
.then(function(response)
{
if(response)
{
return response.json();
}
})
.then(function(data)
{
console.log('From cache',data);
if(!networkDataReceived)
{
var dataArray=[];
for(var key in data)
{
dataArray.push(data[key]);
}
createCard(dataArray)
}
})
}
if('indexedDB' in window)
{
console.log('123');
readAllData('posts')
.then(function(data){
console.log('456');
if(!networkDataReceived)
{
console.log('From cache s',data);
var dataArray=[];
createCard(dataArray);
});
}
我有这样的代码来读取 allData 函数
function readAllData(posts)
{
console.log('asdasdasd');
return dbPromise
.then (function(db){
var tx=db.transaction('posts','readonly');
var store=tx.objectStore('posts');
console.log('asdasdasd123');
return store.getAll();
});
}
please some one help me.i got struck for since last 2 days