Лак ESI для большого количества мелких битов информации - PullRequest
0 голосов
/ 17 октября 2011

У меня есть стандартное приложение блога с сообщениями и пользователями, которые могут добавлять эти сообщения в избранное.

Цели

  1. Когдапользователь просматривает список сообщений, он должен видеть указание (изображение), является ли каждое сообщение избранным.Анонимные пользователи не имеют избранных.
  2. Список сообщений необходимо кэшировать в Varnish (как для анонимных, так и для вошедших в систему пользователей), потому что это дорого для вычисления.

Идеи

Кэшируйте страницу списка в Varnish и используйте ESI для получения информации о избранном ...

  1. ... для каждого сообщения пользователя, создающеготекущий запрос Недостатки : 50 запросов ESI на страницу (в основном проблема N + 1 ).
  2. ... как объект JSON, который затем сохраняется на странице.На клиенте этот объект читается, и DOM манипулирует, чтобы указать информацию о избранном. Недостаток : не работает для пользователей без Javascript.
  3. ... как фрагмент кода CSS, который хранится на странице.CSS определяет, что отображать для каждого поста. Недостаток : работает только для стилевого контента (например, изображений).Невозможно отобразить текстовую информацию.

Я упускаю какие-либо возможности для достижения того, чего я хочу?Идея 3 кажется самым умным ответом, но это не сработало бы, если бы я также хотел отобразить дату, когда пользователь одобрил публикацию.

1 Ответ

0 голосов
/ 19 октября 2011

Ответ 2 имеет большой смысл.Это делает страницы хорошо кэшируемыми, и жертвует только «любимой функциональностью» для людей без JavaScript в их браузере.

Кто эти люди в любом случае?Все еще серфить с рысью?;).И будут ли они принимать куки, чтобы заставить ваш механизм входа (необходимый для личных избранных) работать в первую очередь или даже войти вообще?

...