Пример демонстрирует универсальный код работы с кешем для Internet Explorer и Firefox. Этот пример обеспечивает посылку "If-Modified-Sinse"-заголовка IE при обращениях к закешированному запросу.
Исходный код этого примера:
<script type="text/javascript">
<!--
/* Пример демонстрирует универсальный код работы с кешем для Internet Explorer и Firefox.
Этот пример обеспечивает посылку "If-Modified-Sinse"-заголовка IE при обращениях к закешированному запросу.
Используется функция getAjaxObj */

function getAjaxObj(){
if(window.XMLHttpRequest){
    return new XMLHttpRequest();
} else if(window.ActiveXObject){
    return new ActiveXObject("Microsoft.AjaxObj");
}
}

url='http://htmlweb.ru/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>