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