0

ユーザーがページをロードするたびに最新バージョンの 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 人のユーザーがいる本番サーバーにライブを置くと、パフォーマンスやその他の問題が発生する可能性はありますか?

4

0 に答える 0