Я работаю в интернет-магазине с калькулятором для расчета вашего кредита.Мне нужно немного свежего понимания этого ... представьте себе ситуацию:
- Пользователь нажимает на одну из кнопок, чтобы выполнить запрос POST (jQuery) и заполнить необходимые данные.
- Пользователь нажимает добавляет в корзину и переходит в корзину
- Пользователь нажимает назад кнопка (браузер)
Страница загружается, серверзаполнение данных в калькуляторе (по умолчанию), НО после того, как это сделано, браузер заполняет данные JS из кэша, и происходит забавная вещь.Данные объединяются, и когда пользователь добавляет товар в свою корзину, он получает неправильную, но действительную цену.Допустимая часть - это то, что сервер заполняет, а остальное приходит из кеша.
Я пытался использовать метатеги для предотвращения кеширования, я сказал jquery не кешировать запрос POST и даже в моем ответчикеУ меня есть несколько заголовков, которые говорят - НЕ КЕШИТЬ .Тем не менее, данные POST кэшируются, и я понятия не имею, как их отключить или обновить, или что-то еще ... Когда я смотрю на заголовки, которые возвращаются с данными json, заголовок expires устанавливается в2099 год, хотя я и сказал, что это должен быть год из прошлого.Кроме того, я действительно не знаю, что может быть причиной этой проблемы.
Вот заголовки, установленные в ответчике и что возвращается:
header("Expires: Mon, 26 Jul 1999 05:00:00 GMT" );
header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
header("Cache-Control: no-cache, must-revalidate" );
header("Pragma: no-cache" );
header("Content-type: text/x-json");
Это возвращается (из firebug):
Date Fri, 17 Sep 2010 08:39:38 GMT
X-Powered-By PHP/5.1.6
Connection Keep-Alive
Content-Length 126
Pragma no-cache
Last-Modified Fri, 17 Sep 2010 08:39:38GMT
Server Apache
Content-Type text/x-json
Cache-Control no-cache, must-revalidate
Expires Mon, 26 Jul 2099 05:00:00 GMT
Примечание: когда я отключаю кеш в настройках браузера, он работает как чудо.
Любые идеи приветствуются!
Редактировать:
Iпробовал манекен несколько часов назад, но это не решает его.Проще говоря, вся проблема в том, что когда пользователь нажимает кнопку «Назад», страница не будет обновляться, но ее чтение из кэша или, по крайней мере, данные, полученные из ajax, кэшируются и заполняются.
Так что в основном мне нужно обновлять страницу разумно, когда пользователь нажимает кнопку назад.Обратите внимание, что файлы cookie не являются опцией, потому что (возможно, небольшой процент, но все же) некоторые люди не имеют разрешенных файлов cookie.