Как избежать кеширования CSS

Источник: http://hash.naikonsoft.com/

Небольшой код, который позволит вам не беспокоиться о кешировании CSS, применимо и к JS скриптам. Идея заключается в то, чтобы после адреса к файлу стилей добавить get параметр, который будет уникальным, что позволит странице перезабрать этот файл с сервера. Придумывать алгоритм генерации не нужно, я просто использовал для этого объект Date. Собственно нам больше ничего и не нужно.

date.toString() возвратит нам строковое представление объекта в виде “Mon Sep 28 14:36:22 GMT-0700 1998″. Конечно использовать его в качестве get параметра нельзя поэтому такой вид строки мы переводим функцией Date.parse() в числовой вид.

  1. function loadStyleSheets(stylelist)
  2.  
  3. {
  4.  
  5. var head = $$("head")[0];
  6. var date = new Date();
  7. var dateString = Date.parse(date.toString());
  8. for(var i = 0; i < stylelist.length; i++)
  9. {
  10. var link = document.createElement("link");
  11. link.href="style/" + styleList[i] + "?" + dateString;
  12. link.type = "text/css";
  13. link.rel = "stylesheet";
  14. head.appendChild(link);
  15. }
  16.  
  17. }

В скрипте используется функция $$ из библиотеки prototype. Она возвращает массив всех DOM элементов в структуре страницы с именем, указанном в параметре. Исходя из того что элементов head на странице всего один то и обращаемся на месте к самому первому элементу. Помимо всего прочего тут небольшая идейка подгрузки стилей через js, допустим для того, чтобы использовать разные скины.



Опубликовал admin
4 Ноя, Воскресенье 2007г.



Программирование для чайников.