我正在尝试缓存多页面资源,但是localStorage.set()
只缓存了4页中的6页。有没有人有这样的问题?在内存中缓存所有这些页面的工作正常,但将其保存到localStorage是行不通的。我不知道有限制吗?我正在测试Chrome,它有足够的空间存放我正在存储的内容。
var promises = [];
var catalogItems = {
partInfo: [],
partNumbers: []
};
getCatalogItems(apiConfig.url + 'api/catalogItems?projection=detail')
.success(function(res) {
var pages = res.page.totalPages;
catalogItems = updateCatalogItems(res._embedded.catalogItems, catalogItems);
if (pages > 1) {
for (var i = 1; i <= pages; i++) {
promises.push(
getCatalogItems(apiConfig.url + 'api/catalogItems?page=' + i + '&size=1000&projection=detail')
);
}
$q.all(promises).then(function(response) {
for (var j = 0; j < response.length; j++) {
catalogItems = updateCatalogItems(response[j].data._embedded.catalogItems, catalogItems);
}
deferred.resolve(catalogItems);
});
} else {
deferred.resolve(catalogItems);
}
})
.error(function(err) {
deferred.reject(err);
});
}
return deferred.promise;
}
function updateCatalogItems(data, catalogItems) {
data.forEach(function(item) {
catalogItems.partInfo.push(item);
catalogItems.partNumbers.push(item.itemNumber);
item.formattedDate = moment(item.lastModifiedDate).local().format('MM/DD/YYYY');
item.active = item.active ? 'Y' : 'N';
});
localStorageService.set('catalogItems', catalogItems);
return catalogItems;
}
答案 0 :(得分:0)
localStorage对可以使用的内存量有限制。对于大多数主流浏览器,限制大约为10MB。 Chrome的限制为5MB,无法增加。
一种可能的解决方案是创建一个适用于您的缓存的服务。您可以将数据存储在那里,并使用getter / setter函数来获取/设置资源。