是否有可能返回StaleWhileRevalidate策略与Workbox的离线回退?
const urlHandler = new StaleWhileRevalidate({
cacheName: 'routes',
plugins,
});
registerRoute(
({ request }) => request.mode === 'navigate',
({ event }) =>
urlHandler.handle({ event }).catch(() => caches.match(FALLBACK_HTML_URL)),
);
仅当请求在缓存中时,此代码才有效。但是对于没有缓存(但有网络)的新URL,它会直接显示离线回退:/
有人已经测试过这个用例了吗?
发布于 2020-12-23 02:38:30
在Workbox v6+中,最干净的方法是使用handlerDidError
插件:
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.
],
})
);
https://stackoverflow.com/questions/65408986
复制相似问题