代码之家  ›  专栏  ›  技术社区  ›  Harish Karthick

软件预缓存不更新和仅获取缓存数据

  •  1
  • Harish Karthick  · 技术社区  · 7 年前

    Iam正在尝试实施 网络优先 策略使用 sw预制 .
    现在,我可以缓存数据,并可以从 脱机 . 如果我更改了页面中的数据(即:将页眉从“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); 
    });
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Jeff Posnick    7 年前

    需要检查两件事:

    • 确保您没有缓存 sw.js 文件,因为这可能会将Chrome中的更新延迟24小时。( Details .)
    • 您正在检查更新上的内容 后来的 更新后访问网站?由于缓存优先策略,更新后对站点的首次访问不会显示新内容(因为缓存已在“后台”更新)。