$ resource没有利用缓存参数/ $ cacheFactory

时间:2015-05-30 07:27:07

标签: angularjs

Angular:1.3

我的$ resource和$ cacheFactory的分配看起来像这样。通过我定义的get方法发出的每个请求都没有缓存:

  return $resource(
    this.path,
    null,
    {
      'get': {
        method: 'POST',
        isArray: false,
        cache: $cacheFactory('cacheId', { capacity: 10 });
        headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }
      }
    });

1 个答案:

答案 0 :(得分:1)

从查看源代码,cache参数仅用于http GET或JSONP请求:

  if ((config.cache || defaults.cache) && config.cache !== false &&
      (config.method === 'GET' || config.method === 'JSONP')) {
    cache = isObject(config.cache) ? config.cache
          : isObject(defaults.cache) ? defaults.cache
          : defaultCache;
  }

不缓存POST请求。我正在使用POST,因为我需要指定一个很长的项目列表来获取作为参数。没有POST我超过了最大URL len限制。一旦我将请求切换到GET,缓存就可以工作了。

仅供参考,对于我的用例,我要么取一件物品,要么取很多物品。因此,我只想要单个项目提取的缓存。

相关问题