首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Workbox缓存负载太大

Workbox缓存负载太大
EN

Stack Overflow用户
提问于 2020-08-14 16:20:09
回答 1查看 219关注 0票数 1

日安..我的工作箱出了点问题。当我将策略设置为NetworkFirst时,每次我点击一个页面,它都会缓存至少20MB的文件。如果我点击同一页,它将再次节省至少20MB的另一个缓存。StaleWhileRevalidate也是一样,但更糟。如果我使用CacheFirst,页面只缓存1-2MB,但如果页面上有变化,它不会反映。如果我删除旧的缓存,它现在会反映。

以下是我的示例代码。希望你能帮我解决这个问题。

代码语言:javascript
复制
importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.4.1/workbox-sw.js');

if (workbox) {
  const CACHE_PREFIX = 'v01';

  workbox.setConfig({
    clientsClaim: true,
    debug: true,
    skipWaiting: true
  });
  workbox.core.setLogLevel(workbox.core.LOG_LEVELS.warn);

  // Javascript and CSS rule
  workbox.routing.registerRoute(
    new RegExp('^.*(?:js|css)'),
    new workbox.strategies.NetworkFirst(
      { cacheName: `${CACHE_PREFIX}-asset` }
    ),
  );

  // Main rule - to cache everything,
  // i dont know why on this part, it wont cache CSS and JS
  // sw.js is also cached here
  workbox.routing.registerRoute(
    new RegExp('^.*(?:)'),
    new workbox.strategies.NetworkFirst(
      { cacheName: `${CACHE_PREFIX}-main` }
    ),
  );

} else {
  console.log(`Boo! Workbox didn't load ?`);
}

如果你有任何缓存技巧给我,这将是有帮助的。

我使用Symfony的项目结构,如果它有帮助的话:

代码语言:javascript
复制
root/sw.js and manifest.json
root/js/assetic files (ex 909ab227.js)
root/css/assetic files (ex 307a9c17.css)
root/../var/cache/dev/twig/a lot of folders (ex alphanumeric.php)
EN

回答 1

Stack Overflow用户

发布于 2020-08-17 15:52:02

日安..把它用在我的项目上了。

workbox.routing.registerRoute中添加了以下几行代码

代码语言:javascript
复制
new workbox.cacheableResponse.Plugin({
  statuses: [200]
})

不过,Ⅰ仍然不知道如何在Symfony上预先缓存我的assetic文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63409103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档