IISリセットは、キャッシュされたアイテムを強制的に再送信しますか?


10

サイトのアップデートをリリースするときに、キャッシュされたJavaScriptファイル、CSS、画像などを処理する戦略を開発しようとしています。JavaScriptファイルにバージョン番号を実装する前に、リリースごとにIISをリセットすると、キャッシュされたファイルが効果的に再送信されるかどうか疑問に思いました。

回答:


8

IISResetを実行すると、IISキャッシュがクリアされ、クライアントリクエストの受信時にバックアップが開始された後、再構築が開始されます。ファイルを更新すると、古いキャッシュファイルが古くなり、IISが更新されたファイルを提供し、新しいファイルでキャッシュを更新します。

IISReset(厳しいですが)はIISキャッシュをクリアしますが、プロキシまたはクライアントのローカルキャッシュでは何もしません。たぶん、用語が少し混同されているかもしれませんが、キャッシュに関しては「再送信」という概念はありません。すべてリクエストベースです。クライアントが何かをリクエストし、それがキャッシュで見つかった場合、それはキャッシュから提供されます。同じファイル名を維持する場合は、ファイルのコンテンツの有効期限を強制する必要があります。


助けてくれてありがとう。この領域についての私の無知を許してください...クライアントとIISキャッシュの間で混乱しています。「再送信」という用語は、クライアントのキャッシュからプルされるのではなく、サーバーがコンテンツを送信することを指していました。
DaveK

@デイブは心配しないで、助けてくれてうれしい!1つの追加ビット、ファイルがクライアントキャッシュまたはアップストリームプロキシキャッシュにある場合、キャッシュされたアイテムが古く、サーバーから利用可能な新しいバージョンがない限り、サーバーはリクエストを受信しません。
squillman、2010

3

いいえ、クライアントのキャッシュはコンテンツの有効期限に基づいています。


3

1つのjavascriptファイルを変更する場合、新しいファイルを取得するには、Webアプリケーションを実行しているすべてのクライアントが必要です。「最近」であることは明らかです。

各クライアントがサーバーから新しいファイルを取得するには、WebページのJavaScriptのinclude / scriptにを含めるだけです"?version=1"

それだけで、必要な1パラメータは可能性がある?blue=hello?v=1234155、それはあなたが望むようなものです。重要なのは、JavaScriptを変更するたびに異なる値を使用することです。"?version=1"最初の変更の場合"?version=2"、2番目の変更の場合、次の値を知ることは実用的であり、単一です。また、必要に応じてGUIDを使用できます。"?version=4747b320-62ce-11cf-a5d6-28db04c10777"または、"?version=20130220175025"2013/02/20 17:50:25の日付と時刻を使用できます。

例1

<script type="text/javascript" src="http//..../jquery/1.7.1/jquery.min.js?version=1"></script>

例#2

<script type="text/javascript" src="http//..../jquery/1.7.1/jquery.min.js?k=4747b320-62ce-11cf-a5d6-28db04c10777"></script>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.