Это безопасный и недорогой способ автоматического создания версий на веб-странице ASP.NET?Или это укусит меня? - PullRequest
0 голосов
/ 13 марта 2019

У меня есть веб-страница ASP.NET, на которой я хочу, чтобы пользователи получали последнюю версию файла javascript при каждой загрузке страницы, но я не хочу, чтобы они загружали файл, если он не был изменен.Это постоянно развивающееся веб-приложение, и файлы js часто изменяются.У меня есть номер версии в URL, который я обновляю вручную.Но я постоянно забываю обновлять его, когда меняю js-файл.

<script type="text/javascript" src="js/Sched.js?v=1"></script>

Поэтому, выполнив поиск по методам автоматического управления версиями, я нашел один с использованием перезаписей и php, что заставило меня задуматься о своей среде.,Единственное, что я придумал, - это использование LastWriteTime файла js для версии.Поэтому я построил функцию:

    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 пользователей, есть ли вероятность производительности или другие проблемы?

...