首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Workbox StaleWhileRevalidate和离线回退

Workbox StaleWhileRevalidate和离线回退
EN

Stack Overflow用户
提问于 2020-12-22 20:45:23
回答 1查看 58关注 0票数 0

是否有可能返回StaleWhileRevalidate策略与Workbox的离线回退?

代码语言:javascript
运行
复制
const urlHandler = new StaleWhileRevalidate({
  cacheName: 'routes',
  plugins,
});

registerRoute(
  ({ request }) => request.mode === 'navigate',
  ({ event }) =>
    urlHandler.handle({ event }).catch(() => caches.match(FALLBACK_HTML_URL)),
);

仅当请求在缓存中时,此代码才有效。但是对于没有缓存(但有网络)的新URL,它会直接显示离线回退:/

有人已经测试过这个用例了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-23 02:38:30

在Workbox v6+中,最干净的方法是使用handlerDidError插件:

代码语言:javascript
运行
复制
import {registerRoute} from 'workbox-routing';
import {StaleWhileRevalidate} from 'workbox-strategies';


registerRoute(
  ({request}) => request.mode === 'navigate',
  new StaleWhileRevalidate({
    cacheName: 'routes',
    plugins: [
      {handlerDidError: () => caches.match(FALLBACK_HTML_URL)},
      // Add any other plugins here.
    ],
  })
);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65408986

复制
相关文章

相似问题

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