chrome|90.0.4430.93|blMain
uCoz блог, инструкции uCoz

БЛОГ

uCoz, скрипты, всякое  Поиск, Search

КЭШИРОВАНИЕ ФАЙЛОВ

  
Кэш, rnd, random, cache Кэш, rnd, random, cache     12.08.2011, 12:24    
Обновить закэшированную в браузере пользователя версию подключаемого на сайт файла (будь то js-файл или файл стилей) можно, добавив к пути файла специальный префикс — любое число после вопросительного знака.

Например, у Вас подключен файл: http://site.ru/js/script.js, Вы в нём сделали какие-то изменения и теперь необходимо обновить версию этого файла в браузерах пользователей. Для этого просто заменим путь, например, на такой: http://site.ru/js/script.js?2. Фактически браузер воспримет такой путь, как путь нового файла (отличного от http://site.ru/js/script.js) и, соответственно, уже не будет брать из кэша файл http://site.ru/js/script.js, а загрузит новый, с префиксом: ?2.

Такой-же метод можно применить и к файлам стилей.

Если Вы часто редактируйте подключаемый файл и Вам необходимо вообще запретить его кэширование в браузере, то для этого на uCoz-сайтах можно использовать специальную функцию — rnd(). Данная функция генерирует случайное число от 0 до значения, заданного в скобках. Например, такая запись: <?rnd(10000)?> будет возвращать случайное число в интервале от 0 до 10000.

Новый путь файла с использованием данной функции будет выглядеть следующим образом: http://site.ru/js/script.js?<?rnd(10000)?>

Здесь функция rnd() просто будет каждый раз генерировать новое значение, и файл script.js будет обновляться каждый раз при загрузке страницы.
3 Max пишет:
Виктор, может найдется еще чего интересного? А то так приятно посещать ваш сайт. Но записи Вы делаете не очень часто sad
Ответ:
К сожалению, нет времени, чтобы здесь часто писать…
Раз в неделю — постараюсь smile

2 Likbezz пишет:
ヅ ...
Не ужели ещё кто-то не знает этого???
А “просто юзерам” - не тем, кто пишет сайты, данную инфу просто не понять ....
...
Так, для справки, я юзаю такое - для себя, естественно:
<a href="javascript:(function(){var s,i,x;x=document.getElementsByTagName('link');for(i=0;i<x.length;i++){x[i].href=x[i].href+'?'+new Date().getTime();}})();">Cброс CSS-кэш браузера</a>
- то же самое и для скриптов, в том числе и динамически подключаемых ...
Только у меня это вынесено в отдельную функцию:
<a href="javascript://" onclick="clearCache('script');return false;">'script'</a>
<a href="javascript://" onclick="clearCache('link');return false;">'link'</a>
....

Заходите: http://likbezz.ru/
Ответ:
Да, есть такие smile Я, например, ещё год назад про очистку кэша не знал, хотя уже писал и подключал скрипты на JS...
----------
А про очистку кэша функцией - спасибо, полезная инфа!

1 G-XPert пишет:
В PHP для этого можно использовать аналогичную функцию — rand(10000)