Пример кеширования в IE и Firefox

Пример демонстрирует универсальный код работы с кешем для Internet Explorer и Firefox.

Этот пример обеспечивает посылку "If-Modified-Sinse"-заголовка IE при обращениях к закешированному запросу.

Используется функция getAjaxObj.

Исходный код этого примера:
<script>
function getAjaxObj(){
if(window.XMLHttpRequest){
    return new XMLHttpRequest();
} else if(window.ActiveXObject){
    return new ActiveXObject("Microsoft.AjaxObj");
}
}

url=document.location.protocol + '//' + window.location.hostname+'/ajax/ajax.png';
AjaxObj=getAjaxObj();
AjaxObj.open("GET", url, false); // синхронный запрос для примера
AjaxObj.send(null);
if(!AjaxObj.getResponseHeader("Date")) {  // 1
  var cached = AjaxObj;
  AjaxObj=getAjaxObj();
  var ifModifiedSince = cached.getResponseHeader("Last-Modified");
  ifModifiedSince = (ifModifiedSince) ? ifModifiedSince : new Date(0); // January 1, 1970
  AjaxObj.open("GET", url, false);
  AjaxObj.setRequestHeader("If-Modified-Since", ifModifiedSince);
  AjaxObj.send(null);
  if(AjaxObj.status == 304)  AjaxObj = cached;
}
</script>

.