多くの JavaScript を使用する .NET Web アプリケーションがあります。.aspx ファイルと .js ファイルは密接に関連しています。問題: .aspx ファイルはクライアント上で常に最新の状態になっています (キャッシュされていません) が、.js ファイルはキャッシュされている可能性があります。ユーザーが私のサイトで何時間も費やしており、.aspx/.js ペアを更新するたびにユーザーが問題に遭遇するため、ファイルが 1 つのセッションに対してのみキャッシュされる場合でも、これは問題です。
今、解決策を見つけましたが、おそらくより良い解決策があるかどうか、または私の解決策にパフォーマンス上の欠点があるかどうかはわかりません。
これが私の解決策です:
.aspx の .js-参照:
<script type='text/javascript' src='../scripts/<%# GetScriptLastModified("MyScript.js") %>'></script>
したがって、「GetScriptLastModified」は次のように ?v= パラメータを追加します。
protected string GetScriptLastModified(string FileName)
{
string File4Info = System.Threading.Thread.GetDomain().BaseDirectory + @"scripts\" + FileName;
System.IO.FileInfo fileInfo = new System.IO.FileInfo(File4Info);
return FileName + "?v=" + fileInfo.LastWriteTime.GetHashCode().ToString();
}
したがって、レンダリングされた .js-Link は、クライアントには次のように見えます。
<script type='text/javascript' src='/scripts/GamesCharts.js?v=1377815076'></script>
新しいバージョンをアップロードすると、リンクは毎回変更されます。変更すると、ユーザーは新しいスクリプトまたは画像をすぐに取得できます。