Кэширование браузера - это возможность браузера сохранять результаты с удаленных ресурсов. Процесс довольно простой: он запоминает url
, из которого был запрошен ресурс, и ответ. Если, пока ресурс кэшируется, ресурс запрашивается снова, а не выполняется вызов, браузер обслуживает сохраненную копию из кэша, так как экономит пропускную способность и время.
Если вы добавите параметр, который является всегда уникальным , к вызову ресурса, браузер всегда перезагрузит его, потому что параметр будет изменен, и браузер предположит, что это другой ресурс.
Как правило, timestamp
в секундах (метка времени php) или в миллисекундах (метка времени javascript) гарантирует, что ваш ресурс всегда будет перезагружен:
JavaScript:
<script src id="myScript"></script>
<script type="text/javascript">
// change path to match your file:
let resourcePath = '/js/someScript.js';
document.getElementById('myScript').src = resourcePath + '?v=' + Date.now();
</script>
PhP:
<script src="/js/someScript.js?v=<?=time();?>"></script>
Примечание: вы можете сделать то же самое для любого другого ресурса (.css
или медиаресурсов), чтобы отключить кэширование. Также обратите внимание, что технически вы не отключаете кэширование - это не так просто сделать, и оно отличается от браузера к браузеру. Вы разрешаете кэширование, но всегда запрашиваете другой ресурс, потому что у него есть фиктивный параметр, который постоянно меняется (и который можно переименовать из v
во что угодно, например, в ?no-cache=
).