ユーザーがページをロードするたびに最新バージョンの javascript ファイルを取得できるようにしたい ASP.NET Web ページがありますが、実際に変更されていない限り、ファイルをダウンロードしたくありません。これは継続的に進化する Web アプリであり、js ファイルは頻繁に変更されます。手動で更新する URL にバージョン番号があります。しかし、jsファイルを変更すると、更新するのを忘れ続けます。
<script type="text/javascript" src="js/Sched.js?v=1"></script>
自動バージョン管理の方法をいくつか検索したところ、re-writes と php を使用する方法が見つかり、自分の環境について考えさせられました。私が思いついた唯一のことは、バージョンに js ファイルの LastWriteTime を使用することでした。だから私は関数を構築しました:
protected string GetFileTime(string file)
{
FileInfo fi = new FileInfo(Server.MapPath(file));
if (fi.Exists)
{
Debug.WriteLine(fi.FullName);
return fi.LastWriteTimeUtc.ToFileTime().ToString();
}
else
{
Debug.WriteLine("0");
return "0";
}
}
そして、ページ内のスクリプト URL を変更しました。
<script type="text/javascript" src="js/Sched.js?dev=<%= GetFileTime("js/Sched.js") %>"></script>
私の開発サーバーではうまく機能しているようです。ブラウザには次のように表示されます。
<script type="text/javascript" src="js/Sched.js?dev=131969009464369343"></script>
多くのページ読み込みでテストしましたが、ファイルを変更するまで数値は変わりません。
したがって、それは素晴らしい解決策のようです。私は FileInfo を見てきましたが、ディスクからファイルのメタデータを読み取り、ファイルを開いたりロックしたりしません。しかし、約 1000 人のユーザーがいる本番サーバーにライブを置くと、パフォーマンスやその他の問題が発生する可能性はありますか?