2017-10-03 12 views
0

たちはそれぞれのAPI(Cache APIfetch APIIndexedDB APIPush API)をチェックする必要がありますserviceWorker実装に必要な、キャッシュAPIをチェックしてい労働者は十分ですか?ベストプラクティスは何ですか?はサービスワーカーを実装するか、サービスをチェックする前に、ブラウザでサポートして個別にAPIをフェッチしてのIndexedDB APIの個別サポートのチェックは前

if('Cache' in window) {} 
if ('fetch' in window) {} 
if('indexedDB' in window) {} 
if('navigator' in window) {} 
if(navigator.onLine){} 

OR

if('serviceWorker in navigator)

十分であることを意味しますか?

サービスワーカーを確認するために、後の方法で内部的に以前のメソッドを呼び出すと仮定したことはありますか?

正しい仮定ですか?

もしそうでなければ、何がデフォルトであり、何をチェックする必要がありますか?

+1

"後で、フェッチ、プッシュ、サービスワーカーを確認する前にキャッシュをチェックするとはどういう仮定がありましたか?"あなたがここで何を意味しているかを詳しく説明できますか? if( 'serviceWorker in navigator)がService Workerレジスタファイルに含まれているため、サービスワーカーコードが表示される前に表示されます。つまり、ブラウザがSWをサポートしているかどうかを確認する前に、プッシュ/キャッチ/フェッチのイベントは発生しません。 –

答えて

0

if( 'serviceWorker' in navigator)で十分です。

SW APIを実装するすべてのブラウザでは、Fetch、Caches、およびIndexedDB APIも実装されています。

しかし、いくつかの落とし穴があります。 ChromeとFFの最新バージョンは非同期/待機をサポートしていますが、例えばSamsung Internetはサポートしていません。 SIはSWをサポートしているため、SWでasync/awaitを使用するとSIでスローされます。

関連する問題