Polymer 服务工作者在第一次加载时未缓存API内容

Polymer 服务工作者在第一次加载时未缓存API内容,polymer,service-worker,Polymer,Service Worker,我创建了一个支持服务工作者的应用程序,该应用程序旨在缓存来自AJAX调用的响应,以便可以脱机查看。我遇到的问题是,服务工作者缓存页面,而不是第一次加载AJAX响应 如果在SW toast之后访问并切换到飞行模式,则不会显示API内容。如果返回联机并加载页面,然后再次加载,则在第二次加载时将脱机加载API内容 这就是我用来缓存API响应的内容(通过聚合文档获取): 然后我在sw导入中定义处理程序: <platinum-sw-import-script href="scripts/unta

我创建了一个支持服务工作者的应用程序,该应用程序旨在缓存来自AJAX调用的响应,以便可以脱机查看。我遇到的问题是,服务工作者缓存页面,而不是第一次加载AJAX响应

如果在SW toast之后访问并切换到飞行模式,则不会显示API内容。如果返回联机并加载页面,然后再次加载,则在第二次加载时将脱机加载API内容

这就是我用来缓存API响应的内容(通过聚合文档获取):

然后我在sw导入中定义处理程序:

  <platinum-sw-import-script href="scripts/untappd-fetch-handler.js">

  <platinum-sw-fetch handler="untappdFetchHandler"
                     path="/v4/user/checkins/jimouk?client_id=(apikey)&client_secret=(clientsecret)"
                     origin="https://api.untappd.com">
  </platinum-sw-fetch>

    <paper-toast id="caching-complete"
                 duration="6000"
                 text="Caching complete! This app will work offline.">
    </paper-toast>

    <platinum-sw-register auto-register
                          clients-claim
                          skip-waiting
                          base-uri="bower_components/platinum-sw/bootstrap"
                          on-service-worker-installed="displayInstalledToast">
      <platinum-sw-cache default-cache-strategy="fastest"
                         cache-config-file="cache-config.json">
      </platinum-sw-cache>
    </platinum-sw-register>

有什么地方我出了问题吗?我不太清楚为什么它在加载2而不是加载1时工作


任何帮助都将不胜感激

虽然
跳过等待
+
客户机声称
属性应该让您的服务人员尽快控制,但它仍然是一个异步过程,可能在发出AJAX请求之前不会启动。如果您想保证服务人员将控制页面,那么您需要延迟AJAX请求,直到服务人员控制页面为止(例如,以下),或者,您可以使用


同样重要的是,确保
元素是
元素的子元素,否则它们不会产生预期效果。这是在中调用的,但不幸的是,这只是运行时的一个无声故障。

在安装时使用重新加载非常有效。谢谢你的帮助!
  <platinum-sw-import-script href="scripts/untappd-fetch-handler.js">

  <platinum-sw-fetch handler="untappdFetchHandler"
                     path="/v4/user/checkins/jimouk?client_id=(apikey)&client_secret=(clientsecret)"
                     origin="https://api.untappd.com">
  </platinum-sw-fetch>

    <paper-toast id="caching-complete"
                 duration="6000"
                 text="Caching complete! This app will work offline.">
    </paper-toast>

    <platinum-sw-register auto-register
                          clients-claim
                          skip-waiting
                          base-uri="bower_components/platinum-sw/bootstrap"
                          on-service-worker-installed="displayInstalledToast">
      <platinum-sw-cache default-cache-strategy="fastest"
                         cache-config-file="cache-config.json">
      </platinum-sw-cache>
    </platinum-sw-register>