# [CacheManager](/miniprogram/dev/api/storage/cachemanager/CacheManager) wx.createCacheManager(Object object)

> 基础库 2.24.0 开始支持，低版本需做[兼容处理](1003706)。

> __小程序插件__：不支持

> 相关文档: [弱网体验优化](/miniprogram/dev/framework/performance/weak-network.md)

## 功能描述

创建缓存管理器

## 参数

### Object object


```json
[
  {
    "属性": "origin",
    "类型": "string",
    "默认值": "",
    "必填": "否",
    "说明": "全局 origin"
  },
  {
    "属性": "mode",
    "类型": "string",
    "默认值": "weakNetwork",
    "必填": "否",
    "说明": "缓存模式",
    "子项": [
      {
        "合法值": "weakNetwork",
        "说明": "弱网/离线使用缓存返回"
      },
      {
        "合法值": "always",
        "说明": "总是使用缓存返回"
      },
      {
        "合法值": "none",
        "说明": "不开启，后续可手动开启/停止使用缓存返回"
      }
    ]
  },
  {
    "属性": "maxAge",
    "类型": "number",
    "默认值": "",
    "必填": "否",
    "说明": "全局缓存有效时间，单位为毫秒，默认为 7 天，最长不超过 30 天"
  },
  {
    "属性": "extra",
    "类型": "object",
    "默认值": "",
    "必填": "否",
    "说明": "额外的缓存处理",
    "子项": [
      {
        "结构属性": "apiList",
        "类型": "Array.<string>",
        "默认值": "",
        "必填": "否",
        "说明": "需要缓存的 wx api 接口，不传则表示支持缓存的接口全都做缓存处理。返回的如果是缓存数据，开发者可通过 fromCache 标记区分",
        "子项": [
          {
            "合法值": "wx.login",
            "说明": ""
          },
          {
            "合法值": "wx.checkSession",
            "说明": ""
          },
          {
            "合法值": "wx.getSetting",
            "说明": ""
          }
        ]
      }
    ]
  }
]
```

## 返回值

### [CacheManager](/miniprogram/dev/api/storage/cachemanager/CacheManager)

缓存管理器

## 示例代码

[查看完整示例代码](https://github.com/wechat-miniprogram/miniprogram-offline-demo)

```js
const cacheManager = createCacheManager()
cacheManager.addRule(/https:\/\/(?:.*)/ig) // 表示所有 https 请求都匹配

cacheManager.on('request', evt => {
 // 在弱网时接收到 wx.request 请求
 return new Promise((resolve, reject) => {
   const matchRes = cm.match(evt)
   if (matchRes && matchRes.data) {
     // 有缓存，返回
     resolve(matchRes.data)
   } else {
     // 没缓存，抛错
     reject({ errMsg: 'no cache' })
   }
 })
})
```
