javascript - Angular PWA - 为什么浏览器缓存不断增长?如何阻止它?

标签 javascript node.js angular single-page-application progressive-web-apps

我想知道是否有一种方法可以管理浏览器缓存并在 Angular PWA 应用程序中尽可能少地保留它。

IOS 设备中不断增长的浏览器缓存填满了网站数据中的缓存限制,应用程序因此停止运行!

Service Worker 是否有特定的配置来实现这一点?

我当前的配置:

{
  "index": "/",
  "assetGroups": [{
    "name": "app",
    "installMode": "prefetch",
    "resources": {
      "files": [
        "/*.css",
        "/*.js"
      ]
    }
  }, {
    "name": "assets",
    "installMode": "lazy",
    "updateMode": "prefetch",
    "resources": {
      "files": [
        "/assets/**",
        "/profiles/**",
        "/*.(eot|svg|cur|webp|png|gif|otf|ttf|woff|woff2|ani)"
      ]
    }
  }],
  "dataGroups": [{
    "name": "api",
    "version": 1,
    "urls": ["/api/**"],
    "cacheConfig": {
      "strategy": "freshness",
      "maxSize": 1,
      "maxAge": "7d",
      "timeout": "1s"
    }
  }]
}

最佳答案

我不认为你可以阻止缓存的增长,因为正如我现在所见,你正在缓存所有内容,包括静态资源和 api 缓存

您可以做的是告诉它不要缓存您的页面,方法是发送适当的 header 或使用这些元标记:

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>

更新删除这个,你应该是好的。这是为了 API 缓存

"dataGroups": [{
    "name": "api",
    "version": 1,
    "urls": ["/api/**"],
    "cacheConfig": {
      "strategy": "freshness",
      "maxSize": 1,
      "maxAge": "7d",
      "timeout": "1s"
    }
  }]

关于javascript - Angular PWA - 为什么浏览器缓存不断增长?如何阻止它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57723397/

相关文章:

javascript - 我做了一个 8 球代码,但它只给了我 1 个答案

javascript - 在 javascript/jquery 中加载页面后执行脚本

javascript - 使用ps-node时 Electron/ react 应用程序卡住

javascript - Angular 4 日期选择器语言环境无法正常工作

javascript - 将类导入到全局范围

javascript - 动态测验 - 支持

javascript - 为什么 browser.wait 即使等待时间为 0 也能工作?

node.js - 查看 ioredis 连接何时建立

angular - 无法读取未定义的属性 'ngMetadataName'

angular - 使用 Cypress 测试 Angular 时如何防止整页重新加载?