2011-09-12 8 views
1

私はを持っています。アプリケーションキャッシュの使用に適していると思います。HTML5アプリケーションキャッシュ(Chrome)でキャッシュされたアイテムを更新する

私はアプリケーションキャッシュでチュートリアルを行ったが、うまくいった。

私のアプリにあるほとんどのスクリプトは、展開プロセスの一環として統合され、最小化されていますが、唯一の例外はjQueryです。 jQueryの場合、Googleがホストするコピーを使用します。

これは、jQueryがキャッシュされずに読み込まれないため、キャッシュされた後にもう一度ページを読み込んだときに問題が発生しました。

jQueryが他の最小化されたスクリプトと統合されるように変更しましたが、私はまだ問題を抱えていました。私はマニフェストを修正し、Chromeが更新されたマニフェストをダウンロードしましたが、更新されたリソースをダウンロードしませんでした。

さらに、HTMLタグからマニフェスト属性を削除しましたが、それでもページを更新しませんでした。ページをリフレッシュするためには、マニフェストから/index.htmlを実際にコメントアウトしなければなりませんでした。

したがって、同じリソースをまだキャッシュしている限り、マニフェストの更新は何もしないようです。私は行方不明のものがありますか?キャッシュされたアイテムが特定の日付より古い場合、マニフェストファイルに強制的にダウンロードを強制するものはありますか?

編集に追加:Chrome(安定版)でテストしています。

+0

私はwindow.applicationCache.statusとswapCache()がUPDATEREADYであるかどうかを確認するためにスクリプトを使用してみました。 Chromeは常にstatus = 1(キャッシュされた状態)で停止しています。 – Asmor

+0

リソースファイルに期限切れヘッダーを設定していますか?私の推測では、ブラウザはサーバーからのものを再度読み込むのではなく、ネットワークキャッシュからappcacheを読み込むことになります。 – robertc

+0

Webサーバー(共有ホスティング)を構成していないことを理解した上で、Fiddlerをチェックインしただけで、キャッシュヘッダーが有効になっていません。つまり、ブラウザはキャッシュしています(要求に応じて変更された場合、一致しない場合はヘッダーを送信します)。更新されたマニフェストが最新のものであるかどうかをチェックせずに、 "ネットワークにキャッシュされた"コピーを取得する可能性はありますか? – Asmor

答えて

0

マニフェストファイルを強制的にキャッシュしないようにするために、マニフェストファイルだけにキャッシュヘッダーを明示的に設定することによって、そのキャッシュを有効にすることができました。私は自分の.htaccessにこれを追加しました:私は私のファイル拡張子として.mf使用しています...あなたはappcacheする.appcache、変更のMFを使用している場合

<Files ~ "\.mf"> 
    ExpiresActive On 
    ExpiresDefault "access" 
</Files> 

注意。

関連する問題