5

私が理解しているように、アイテムがWebブラウザーによってキャッシュされるかどうかは、次の要素によって決まります。

  1. 応答ヘッダーがブラウザーに実行するように指示する内容(例、Cache-ControlおよびExpires)。
  2. バリデーター(ETagやLast-Modifiedヘッダーなど)の存在。

ネットワークファイル共有から提供されるファイルの場合、これはどのように異なりますか?異なるブラウザ間で?このJavaScriptには次のものが含まれていると考えてください。

<script type="text/javascript" src="\\SOMECOMPUTER\folder\file.js"></script>

metaネットワークファイルが関係している場合、ブラウザはこのようなタグに従いますか?

<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 31 Dec 2011 11:12:01 GMT">

このトピックに関するドキュメントはほとんど見つかりません。

4

2 に答える 2

4

編集:実際にさらにいくつかのテストを行った後、適切な権限が設定されていると仮定して、IE8、Firefox、およびGoogleでそのようにファイルにアクセスできます。以前の混乱をお詫びします.

ここで、java-script ファイル (または実際にはすべて) をキャッシュするかどうかの問題に戻りますが、これはイエスです。したがって、これを修正する方法は次のとおりです。

<meta> タグを使用して、すべてのブラウザーでキャッシュをオフにしますか? (これは私にとってはうまくいくように見えたので、ブラウザはこのようにネットワークファイルのメタタグをリッスンするようです)

IEにjavascriptを強制的にリロードさせる方法は? (これは、未使用の変数として時間を追加することで、ajax 呼び出しのキャッシュを回避する方法と同じように機能します)

于 2013-01-09T18:02:25.740 に答える
1

HTTP ヘッダーは、ファイルが HTTP プロトコルを介して送信されている間のみ考慮されます。ファイル アクセス (ローカルとネットワーク共有の両方) は HTTP を経由しないため、これでキャッシュを制御することはできません。

HTML ファイルには、<head>メタ タグのあるセクションにキャッシュ コントロールがあります。したがって、.html ファイルのキャッシュを制御したい場合は、それを行うことができます。残念ながら、上記は .js ファイルには当てはまりません。この方法で js ファイルのキャッシュを制御することはできません。

2つのオプションをお勧めします:

  • 小さな HTTP サーバーをセットアップし、そこから .js ファイルをフェッチします。このようにして、HTTP ヘッダーによってキャッシュ タイムアウトを制御できます。
  • JavaScript コードを HTML ページ(<script>...</script>タグ内) にインライン化し、タグによるキャッシュを制御し<meta>ます。このようにして、このファイルを a にロード<div src="\\server\cachedfile.html" \>できます。ロード後に div を非表示にすることもできます。

<meta>キャッシュ制御の信頼性が高く、さらに制御しやすいため、2 番目のオプションの方が優れていると思います。

于 2013-01-10T15:11:18.650 に答える