29

プレーンなバニラ HTML ページをレスポンシブ レイアウトの HMTL5/CSS3 に変換しましたが、セキュリティ上の理由から (セキュリティ担当者の指示により) ページをキャッシュしてはいけません。

以前に使用さ<meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Expires" content="-1">たページで、ページがキャッシュされないようにします。

HTML5でこれを置き換えるものは何ですか? HTMLページがクライアントにキャッシュされないようにするにはどうすればよいですか?

マニフェスト ファイルについて 1 週間読んでいますが、マニフェスト ファイルを添付すると明示的に添付先のページがキャッシュされるため、私が望むこととは正反対のことをしているようです。

また、どのメタ要素が現在許可されているかについての w3c の定義に戻らないでください。HTML5 には要素にcache-controlorが含まれていないことを理解しています。Pragmameta

ページがキャッシュされないようにするために何が含まれているかを知る必要があります。

4

4 に答える 4

36

コードの最初で、これを使用する必要があります。

<!DOCTYPE html>
<html manifest="manifest.appcache">
...

次にmanifest.appcache、そのようなコンテンツで作成します。

キャッシュマニフェスト

# マニフェスト バージョン 1.0 をキャッシュする

# キャッシュなし

通信網:
*
于 2013-03-05T16:24:36.703 に答える
4

私はかなり長い間同じ問題に苦労してきました。少なくともこれまでのところ、Chrome、FF、および IE で機能するのは次のとおりです

。1) マニフェスト ファイル<html lang="nl" manifest="filename.appcache">を参照します。これが起こらないようにします:

2) マニフェスト ファイル filename.appcache を次の内容で使用します。これは、基本的に次のように述べています: すべてのファイルについて、キャッシュからではなくネットワーク サーバーから読み取る:

CACHE MANIFEST
# 2015-09-25 time 20:33 UTC v 1.01 
NETWORK:
*


3) 3 番目のステップが必要です。Web サイトの (部分的な) 更新をアップロードするたびに、コメント (#) 行の日付とタイム スタンプを変更して、マニフェスト ファイルも変更します。なんで?マニフェスト ファイルを変更しないと読み取られず、デフォルトでステップ 1 になるため、キャッシュとキャッシュからの読み取りが行われます。ただし、マニフェスト ファイルが変更されたという事実は、マニフェスト ファイルを再度読み取ることを強制するため、その中の「キャッシュから読み取るのではなく、ネットワーク サーバーから読み取る」命令が再度適用されることを強制します。

于 2015-09-25T04:26:09.720 に答える
0

前の回答 は、キャッシュを防止したり、クロムの既存のキャッシュをクリアしたりするために一貫して機能しない場合がありますが、回避策があります。

1) Chrome の既存のキャッシュをクリアするには、Web サイトのすべてのファイルを更新する必要がある場合があります(たとえば、すべてのページで新しい css ファイルにリンクすることにより)。Chromeの既存のキャッシュがクリアされる前に、キャッシュ マニフェストを更新します。ページの 2 回目の訪問 (ページがレンダリングされる方法の「フロー」のため: ページが最初に訪問されたとき、ブラウザはマニフェストを読み取ってキャッシュし、既存のキャッシュからの読み込みを続行します。 2 回目にアクセスすると、新しく保存された更新されたマニフェストが読み取られて適用されます)。

2) それでも解決しない場合は、マニフェスト ファイル自体にスクリプトを含めて新しいマニフェストをチェックし、見つかった場合はそれを再読み込みして新しいマニフェストを使用することができます。これはトリックを実行し、ファイルがクロムに​​永続的にキャッシュされたままになっている場所についてテストした残りのすべてのケースを解決しました. このスクリプトは、Jason Stimpelのこのページで見つけました。

<script type="text/javascript">
window.addEventListener('load', function (e) {
window.applicationCache.addEventListener('updateready', function (e) {
        window.location.reload();
    }, false);
}, false);
</script>
于 2015-10-05T15:38:03.960 に答える