【问题标题】:local-storage: Caching a multi-page resource [duplicate]local-storage:缓存多页资源[重复]
【发布时间】:2018-09-16 23:10:36
【问题描述】:

我正在尝试缓存多页资源,但localStorage.set() 仅缓存 6 页中的 4 页。有人在这样做时遇到问题吗?在内存中缓存所有这些页面工作得很好,但将其保存到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;
}

【问题讨论】:

标签: angularjs local-storage


【解决方案1】:

localStorage 对可以使用的内存量有限制。大多数主要浏览器的限制往往在 10MB 左右。 Chrome 的限制为 5MB,无法增加。

一个可能的解决方案是创建一个可以在您的缓存中运行的服务。您可以在其中存储数据并使用 getter/setter 函数来获取/设置资源。

【讨论】:

  • 这是在服务中完成的。它现在的工作方式是我只是将服务用作缓存,如您所描述的那样将信息存储在内存中。每页的平均大小为 65KB,我只存储 6 页的结果。除此之外,我只有几个令牌存储在 localStorage 中,所以看起来应该还有足够的空间。它可以很好地将结果存储在内存中。将信息存储在 localStorage 中与内存中相比有什么好处吗?
猜你喜欢
  • 2015-03-11
  • 1970-01-01
  • 2016-04-08
  • 2017-07-13
  • 2014-02-03
  • 1970-01-01
  • 1970-01-01
  • 2016-05-01
  • 2014-09-30
相关资源
最近更新 更多