下面的路由定义将json数据作为MyCachedData存储在缓存存储中,而IndexDb只存储url和时间戳。
workboxSW.router.registerRoute('/MyApi(.*)',
workboxSW.strategies.staleWhileRevalidate({
cacheName: 'MyCachedData',
cacheExpiration: {
maxEntries: 50
},
cacheableResponse: {statuses: [0, 200]}
})
);
是否可以仅将 json 数据存储在索引数据库中,如何定义它以使用 Workbox 拦截(添加、更新、删除)?
不,Workbox 依赖于缓存存储API https://developer.mozilla.org/en-US/docs/Web/API/CacheStorage存储响应的主体。 (正如您所观察到的,它使用 IndexedDB 来获取一些带外管理信息,例如用于缓存过期的时间戳。)
如果使用缓存存储 API 的方法不适合您的用例(很高兴听到为什么不?),那么我建议直接更新 IndexedDB,也许通过像这样的包装器库idb-keyval https://github.com/jakearchibald/idb-keyval.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)