В некоторых веб-браузерах жестко кэшируются AJAX-запросы. Иногда это хорошо, если предполагается, что ответы сервера меняются довольно таки редко, но чаще всего — это очень плохо и доставляет много головной боли веб-разработчикам.
В частности такая погрешность была замечена в Internet Explorer при использовании метода $.getJSON.
Но решить эту проблему очень просто. Нужно всего лишь отключить кэш в настройках AJAX-запросов jQuery.
Необходимо установить следующую строчку перед выполнением асинхронных запросов к серверу:
$.ajaxSetup({cache: false});
Альтернативный вариант для веб-разработчиков, которые не используют jQuery — это добавлять в конец URL-адреса сервера дополнительный GET-параметр, который ни на что не влияет, но имеет всегда разное значение. Таким значением может быть случайное число или текущая дата c временем в миллисекундах. Таким образу веб-браузер будет «думать», что он всегда обращается по новому адресу, и по-этому не будет брать с кэша устаревшие результаты.
Пример:
ajaxURL += "&noCache=" + (new Date().getTime()) + Math.random();
Даже в jQuery я использую альтернативный вариант, мне кажется, так проще :)
спасибо! то что нужно!
ок. альтернативный вариант . спасибо
Спасибо!! 1.5 часа на поиски причины, и 10 секунд на поиск вашего решения!
альтернативный вариант… потом кэш забивается кучей всякой херни…
Он и так забивается много чем, и Вас это не должно волновать. Пусть об этом думают разработчики браузеров.
Неплохо неплохо, вроде всё просто и понятно спасибо!