为什么角缓存忽略容量配置

Why does angular-cache ignore capacity configuration?

本文关键字:容量 配置 缓存 为什么      更新时间:2023-09-26

我将angular缓存与localStorage一起用于在html5中本地保存文章。文件指出,有一种称为"容量"的选项:

容量

缓存可容纳的最大项目数。添加更多项目则该容量将导致高速缓存像LRU高速缓存一样操作,删除最近最少使用的项目以保持容量不足。默认值:Number.MAX_VALUE.

由于我只想存储最多20篇文章,我这样配置:

CacheFactory('articleCache', {
  storagePrefix : 'my.news.',
  capacity : 20,
  storageMode: 'localStorage'
});

当我想获取数据时,我只需要:

$http.get(url, {cache: CacheFactory.get('articleCache')});

在使用我的应用程序一段时间后,我突然注意到它停止工作,因为达到了localStorage限制配额。当我打印console.log(localStorage)时,我看到存储到localStorage的文章远远不止20篇。因此,由于某种原因,angular cache不会删除最旧的项目,尽管文档承诺了相反的情况。

那么,是我做错了什么,还是角度缓存中有漏洞?

好的,这是角缓存中的一个错误,现在在4.4.3版本中得到了修复,请参阅https://github.com/jmdobry/angular-cache/issues/210

安装更新后,我的应用程序按预期运行。