Cache Revalidate

Maxim Dounin mdounin at mdounin.ru
Thu Nov 28 09:19:09 UTC 2013


Hello!

On Wed, Nov 27, 2013 at 04:21:37PM -0500, S.A.N wrote:

> > use case и о происхождении требования о недопустимости кеширования 
> > даже на 1 секунду.  Возможно, это позволило бы пересмотреть 
> > существующее поведение при max-age=0, благо в Cache-Control есть и 
> > другие способы запрета кеширования.
> 
> use case продиктован нашей бизнес логикой, мы кешируем все даже страницы для
> залогиненых пользователей (персонал данные подтягиваются через ajax с
> использованием клиентского кэширования браузера), в этом есть смысл, цифры я
> уже писал, разница скорости в генерации страницы и в ревалидации отличается
> в десятки раз, в пользу ревалидации.
> 
> Есть сайт с хорошей посещаемостью, залогиненые пользователи имеют
> возможность общатся, создавать свой контент, редактировать, удалять, есть
> так же платные сервисы.
> 
> Наши клиенты не хотят и не должны ждать, даже если это одна секунда, ну
> например, клиент написал комментарий на сайте, POST ушел на сервер, если у
> нас кеширования на 1 секунду, мы клиенту не можем сразуже показать новую
> страницу, должны сделать задержку на 1 сек потом обновить его страницу или
> как на Хабре все комментарии видны с задержкой и люди это терпят.

Т.е. задача - показать клиенту, добавившему комментарий с помощью 
POST'а, страницу с его комментарием непосредственно после 
перенаправления, отдаваемого на POST, правильно? 

Спасибо, так констуркция понятна, хотя и несколько странна.  
Just in case, альтернативные решения на вскидку: 

- Добавлять комментарий без перезагрузки страницы javascript'ом, 
  отправлять на сервер - через ajax.  Так, насколько я понимаю, 
  сейчас делают чуть менее, чем все, в том числе упоминаемый вами же 
  facebook.

- Добавлять комментарий, после чего возвращать перенаправление на 
  специальный адрес (e.g. со случайным числом в аргументе) для 
  прохода кешей.  Такой подход позволяет не зависеть от реализуемых 
  по пути алгоритмов кеширования, и в то же время обеспечить 
  нормальное кеширование страниц (и беспроблемную навигацию по 
  истории).  Кеши страниц на nginx'е при этом можно склеить с 
  помощью грамотного указания ключа кеширования и использования 
  proxy_cache_bypass.  Так делали раньше чуть менее, чем все.

[...]

-- 
Maxim Dounin
http://nginx.org/en/donation.html



Подробная информация о списке рассылки nginx-ru