私はappcacheを持っています(NETWORK *を使用)。だから今私はで私のページにアクセスし<html manifest="/cache.appcache">
ます。次に、すべての画像がそうであるように、ページ自体がキャッシュされます。しかし、ページ自体がキャッシュされないようにしたいのです。これどうやってするの?私NETWORK *
はそのトリックをするだろうと思った。
よろしく、ケビン
私はappcacheを持っています(NETWORK *を使用)。だから今私はで私のページにアクセスし<html manifest="/cache.appcache">
ます。次に、すべての画像がそうであるように、ページ自体がキャッシュされます。しかし、ページ自体がキャッシュされないようにしたいのです。これどうやってするの?私NETWORK *
はそのトリックをするだろうと思った。
よろしく、ケビン
appcache マニフェストは常にマスター ページをキャッシュします。Chrome を使用している場合は、ページのキャッシュ ファイルを確認してください: chrome://appcache-internals
回避策として、オフライン コンテンツをキャッシュするための appcache ファイルを含む非表示の iframe をページのどこかに配置することが考えられます。(「アプリケーション キャッシュが iframe でマスターを保存しないようにする」を参照してください: http://labs.ft.com/2012/11/using-an-iframe-to-stop-app-cache-storing-masters / )
より良い解決策は、ページを開いたときにサーバーから新しいコンテンツを取得するようにページを作成することです。サーバーにアクセスできない場合は、HTML5 ローカル ストレージから最新の既知のコンテンツを提供できます。
私は iframe の回避策を試してみましたが、エラーが発生していることがわかりました。ほとんどのブラウザーは、ページが取得できない iframe のデータをキャッシュします。
代わりに、ページのコンテンツを AJAX 経由でロードします。基本的に、サーバーからコンテンツを取得して追加するマニフェストと JavaScript を含む空白の html ページがあります。このようにして、空白の html のみがキャッシュされ、コンテンツは常にサーバーから更新されます。
ページをこの方法に変換するのは非常に難しい場合がありますが、うまくいきます。適切な JavaScript が正しいタイミングで実行されるようにするには、おそらく多少のもつれを解く必要があります。キャッシュから新しい ajax メソッドにプルするときに呼び出されないサーバー コードを移動します。
注: 条件がクエリ文字列にある場合、サーバーから条件付きコンテンツをプルする必要はありません。クエリ文字列が異なると、別のキャッシュが作成されます。