Суть Вопроса
Вопрос о кэшировании является наиболее интересным в сайтостроении. Под кэшированием какого-либо объекта принято понимать сохранение его локальной копии и последующая работа с ней. Таким образом, при повторной работе с 'кэшированной' копией, нет необходимости заново создавать сам объект, и что может быть еще более затратным - тратить ресурсы на его создание. Надеюсь, это понятно, если что - подробнее читаем в
Википедии.
Некоторые специальные javascript/html конструкции заставляют браузер форсированно кэшировать содержимое страницы. Несомненно, это очень правильное решение, т.к. посетителю сайта не нужно заново задгружать всю страницу, и в особенности javascript-файлы - на то просто нет особой необходимости.
Рассмотрим парочку полезных примеров, в которых браузер кэширует содержимое.
Пример 1
<script type="text/javascript">
var theimages = document.images;
for (i=0;i<theimages.length;i++)
theimages[i].src = "blank.gif";
</script>
Для начала - явное 'кэширование' всех элементов веб-страницы и cоздание промежуточной переменной theimages. Далее - кэширование подгружаемой картинки при помощи theimages[i].src=.
Пример 2
Если появилась необходимость в кэшировании картинки до того, как она будет показана, то используем следующий код :
smimg_name = new Array();
smimg_name[0]= new Image;
smimg_name[0]= "http://av.li.ru/82/1389082_9937302.jpg";
Далее, допустим у нас обрабатывается какое-нибудь событие, например onClick и вызывается обработчик - функция clickHandler.
function clickHandler () {
document.imageId.src = smimg[0];
}
В результате чего, атрибуту src элемента с id='imageId' присваивается созданный ранее объект smimg_name[0].
Массив в этом примере был специально создан для того, чтобы показать, что точно таким же способом можно подгрузить сразу все необходимые картинки, допустим для небольшого слайдшоу, состоящего из четырех-пяти картинок.
Пример 3
Мало кто знает, но обычное включение js файла в страницу заставляет кэшировать сам файл.
<script type="text/javascript" src="script.js"></script>
Конечно существуют и другие способы, в том числе и при помощи популярных библиотек jQuery, Prototype, ExtJS, но js-кэширование основано в них именно на принципах, изложенных выше.
Но с другой стороны, обычный Ctrl+F5 может не перезагрузить часть контента страницы, а взять его из своего кэша. Поэтому, при разработке возникает проблема в постоянной очистке кэша.
Если говорить о примере 3, то есть неплохой способ обойти кэширование скрипта. Для этого при указании ссылки на js файл можно в конце приписывать любое случайное число, т.е. передавать это число js файлу в качестве Get-параметра :
<script type="text/javascript" src="script.js?4234231"></script>
Mozilla Firefox
Ну а теперь посмотрим на кэширование файлов в браузере
Mozilla Firefox.
Кэширование js файлов можно отключить простым указанием в about :config параметра network.http.use-cache=false. Тоже самое, но при помощи кнопочек умеет делать плагин
WebDeveloper.