4

AureliaでプログレッシブWebアプリケーションを構築するためのテクニックを、主なブラウザ間で機能するオフライン機能で調べています。サービス・ワーカーは、アセット・キャッシングのために好まれるオプションですが、Safari(および現在Edge)ではサポートが不足しています。彼らがサポートされていない場合、appcacheへのフォールバックを持つサービスワーカーを使用することは可能ですか? appcacheマニフェストとサービスワーカーがインストールされている場合、アプリケーションはどのように動作しますか?サポートされていないブラウザでのappcacheフォールバックを使用したサービスワーカーの実装

答えて

4

。 Safariのようなレガシーブラウザ向けのappCacheマニフェストを含めることができます。これは過去のやり方と同じように機能します。最近のブラウザでは、サービスワーカーのキャッシュを活用し、appCacheが存在しないかのように動作します。応答性のある画像の仕方のような並べ替え。一息ため

+0

+1このライブラリは、その哲学を、次のとおりです。 https://github.com/arcturus/gulp-sww それはあなたのウェブサイトをキャッシュするために、すべてのserviceworkerファイルを作成しますが、またフォールバックするために必要なappcacheコードを作成します。 appcacheへのフォールバックを行うserviceworkerのインストールを検出するコードは次のとおりです。 https://github.com/arcturus/gulp-sww/blob/master/templates/unminified/install.tpl.js –

+0

appcacheは無視されますが、SWレジスタが登録された後もChromeは引き続きappcacheをダウンロードして更新します。 (それは2014年以来オープンバグだったので、息を止めないでください)https://crbug.com/410665 –

+0

お知られてお奨め!私は、appCacheがほとんどのブラウザで廃止される過程にあることを知っています。来年はいつか目標だと思うが、それは変わるかもしれない。 –

2

ブラウザがイースリー行われているサポートされている技術チェック:それはとにかくJavaScriptで行われるので

if(navigator.serviceWorker){ 
    initServiceWorker() 
}else if(window.applicationCache){ 
    initApplicationCache(); 
}else{ 
    console.log('no caching possible'); 
} 

動的ロードサービスワーカーが問題になることはありません。

ダイナミックロードapplicationCacheのmainfestはできていないようですが、あなたは、ご覧のiframeハックを試すことができます。ブラウザは、サービス従事者のキャッシュではなくappCacheマニフェストのに使用されるサービスの労働者をサポートしている場合 Dynamically Trigger HTML5 Cache Manifest file?

関連する問題