2016-03-31 12 views
1

をpageloading後サイドロードのパフォーマンスが向上します。サービス労働者、プリロードサブページ、私は次のコードでHTMLページへServiceWorker用HTML-コードを追加している

self.addEventListener("install", function (e) { 
     e.waitUntil(
     caches.open("myCache").then(function (cache) { 
      return cache.addAll([ 
       "p1.html", 
       "p2.html"]); 
     }) 
    ); 
    }); 

サービススクリプトが利用可能な場合、サブページはすぐにロードされます。 gprsやエッジにネットワーク接続を絞って、これは多くの問題を引き起こす! 他のすべてのリクエストが終了した後で、これらのサイトのキャッシュを開始するソリューションが必要です。

これを行う方法はありますか?

答えて

3

cache.addAll()からWorkerGlobalScopeの中で使用しているものと同じキャッシュストレージAPIもWindowで公開されています。これは、制御されたページで実行されるJavaScriptから同じキャッシュを変更できることを意味し、cache.addAll()を実行する前に何らかのイベントが発生した場合には、いつでもお待ちください。window/document/

サービスワーカーのinstallハンドラ内にキャッシュの配置を保持する場合(サービスワーカーがインストールされている場合は常にキャッシュが設定されていることを確認してください)、navigator.serviceWorker.register()をあなたのページでイベントが発生します。

関連する問題