Что делает это случайное число: /javascripts/rails.js?1271798101 - PullRequest
2 голосов
/ 21 апреля 2010

Мне кажется, я помню, что читал, что это связано с указанием браузеру не кэшировать его или что-то в этом роде. Как это влияет на кэширование браузера и производительность приложений в производственной среде? Когда меняется это число?

<script src="/javascripts/rails.js?1271798101" type="text/javascript"></script>

Ответы [ 2 ]

8 голосов
/ 21 апреля 2010

Число - это время последнего изменения файла в виде количества секунд с начала эпохи Unix (если вы запустили stat -c "%Y" javascripts/rails.js в Unix, вы получите то же число, что и в теге сценария).Это число изменится при следующем изменении файла.

Что он делает, так это сообщает браузеру, что он может кэшировать этот файл javascript и продолжать использовать кэшированную версию, пока вы не измените файли, таким образом, номер меняется.

2 голосов
/ 21 апреля 2010

Он не говорит браузеру, чтобы он не кэшировался - браузер кэширует каждую строку запроса по отдельности, поэтому, если следующий запрос к rails.js? 9283482934, то это новый URL, который необходимо запросить у сервер.

Это позволяет вам указать браузеру кэшировать файл, но, обновив html-файл новым номером, вы можете заставить все клиентские браузеры загружать новую версию, фактически не изменяя новый файл js.

Причина использования этого числа состоит в том, чтобы разрешить клиентам кэшировать его, а также разрешить принудительное обновление, поэтому оно не должно отрицательно влиять на производительность. Однако, если вы программно генерируете случайное число для каждого запроса, вы будете вынуждать всех клиентов всегда запрашивать файл, эффективно отключая кэширование для этого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...