Кэширование AJAX-запросов браузером Internet Explorer IE6

ie-ajax

Не я первый и не я последний веб-разработчик, который неоднократно сталкивался с проблемам верстки в IE (Internet Explorer). В моих надеждах было, что все проблемы с этим детищем Microsoft так и остановятся только на трудностях мультибраузерности верстки, но не тут-то было, все мои надежды так и остались несбывшимися мечтами. IE превзошел сам себя - это единственный веб-браузер который кэширует AJAX-запросы, все было бы ничего если бы получаемый контент был статическим, но зачастую это далеко не так. К счастью есть довольно простое решение проблемы кэширования AJAX-запросов в IE.

Существует два метода объяснить IE, что контент устарел и его необходимо получить непосредственно из AJAX-запроса, а не из кєша браузера.
Первый способ решения проблемы непосредственно в PHP, можно послать заголовок с сервера о том что содержимое устарело:

// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
// HTTP/1.0
header("Pragma: no-cache");

Но этот метод не всегда удобен в некоторых случаях, поэтому второй способ самый простой и самый эффективный для решения текущей проблемы. Можно просто добавить случайную переменную или временную метку к пути AJAX-запроса.

var url="example.com/example?uniq=" + Math.random();

или

var url="example.com/example?uniq=" + new Date().getTime();

Два пути решения одной проблемы с уникальностью AJAX-запросов, помогут избавиться от потери Вашего драгоценного времени и заставят IE работать на Вас.
С моей точки зрения, целесообразно использовать переменные JS в пути запроса, этот метод неоднократно проверен на практике и ни разу меня не заставил краснеть.
Естественно какой из способов использовать Вам - это дело вкуса и ситуации, но выбор есть.

Комментарии

Kalclonee
Kalclonee IMG
13.01.2012
Вы можете оформить доступным физическим стилем не только выбранный абзац, но и несколько выделенных абзацев.
  • КОНТАКТНАЯ ИНФОРМАЦИЯ
  • E-mail:
  • ICQ: 228 000 750