我尝试使用 sw-precache 实施 networkfirst 策略。
现在我可以缓存数据并能够从离线提供服务。如果我更改数据(即:将标题从'hello'更改为'Welcome')在页面中没有得到反映它始终从缓存中获取数据只有在我取消注册服务工作者或清除站点数据时才会获得更新我可以获取我的数据
这是我的sw-precache gulp任务:
gulp.task('generate-service-worker', function(callback) {
var path = require('path');
var swPrecache = require('sw-precache');
var rootDir = '.';
swPrecache.write(path.join(rootDir, 'sw.js'), {
staticFileGlobs: [
rootDir + '/css/**.css',
rootDir + '/js/**/*.{js,css}',
rootDir + '/images/**/*.{png,jpg,jpeg}',
rootDir + '/*.{html,js}',
],
runtimeCaching: [
{
urlPattern: 'http://localhost:8080',
handler: 'networkFirst'
}],
stripPrefix: rootDir
}, callback);
});
答案 0 :(得分:1)
要检查两件事:
sw.js
个文件,因为这可能会延迟Chrome中最多24小时的更新。 (Details。)