Задать вопрос
gluck59
@gluck59
Виртуальный глюк

Как бороться с излишне агрессивным браузерным кэшированием?

Привет
Я уже использовал все известные мне способы запретить кэширование в браузерах, но ничего не помогло.

Клиент ходит аяксом на API и получает оттуда JSON. Точнее должен ходить, но упорно тащит все из кэша. Это становится совсем неприятным, когда клиенту нужно авторизоваться: вместо токена в ответ он может получить либо старый токен, либо непонятно что.

Настраивать управление кэшированием на сервере совершенно бесполезно: ни Хром, ни Сафари директивам не следуют и тащат все из кэша. Я использовал ?_nocache= как последний способ, но браузерам пофиг. Можно даже подсунуть аяксу левый адрес сервера — эффект будет тот же. То есть создается впечатление, что на самом деле обращения к серверу не было.

87f672430d974cbcb3a8f83df7f4483c.jpg

Сейчас сервер отдает еще и такие заголовки:
Cache-Control:max-age=10
Date:Fri, 22 Apr 2016 10:07:15 GMT
Expires:Fri, 22 Apr 2016 10:07:25 +0000
Last-Modified:Fri, 22 Apr 2016 10:07:15 GMT

Но все бесполезно, оба браузера делают вид что ходят на сервер, но всегда используют локальный кэш. Кратковременно помогает только полная очистка кэша, но юзер не будет чистить его постоянно... И через некоторое время все начинается заново.

Что делать? Как бороться с этой гадостью?

UPD:
Мобильный Сафари пошел еще дальше. Если залогиниться, срубить Сафари, "удалить кэш и всю историю всех сайтов" в настройках, перезагрузить телефон и зайти снова — без лишних вопросов обнаруживаем себя залогиненными как ни в чем ни бывало...
  • Вопрос задан
  • 1093 просмотра
Подписаться 1 Оценить Комментировать
Ответ пользователя Dmitry Tallmange К ответам на вопрос (3)
p00h
@p00h
Фехтовальщик-стропальщик
Присоединяюсь к Алексей. Лично у меня все прекрасно работает и в хроме, и в лисе. Веротяно, здесь закралась какая-то ошибка с Вашей стороны.
Ответ написан