У меня есть несколько сценариев, которые мне нужно будет рассмотреть через несколько месяцев.Просто задаю вопрос, чтобы я мог обдумать дискуссию.
Я использую Zend Framework для своего стека приложений.Я использую APC для кэширования на сервере (а не в memcache, поскольку, как я полагаю, memcache не приносит мне никакой пользы, даже если мое приложение распределено).
Мое приложение было создано для работы без JavaScript, изатем для поддержки JavaScript я ломаю страницу и отрисовываю дружественную для JavaScript версию.
Если вы анализируете простую страницу, возможно, 80% ее составляют основные функции, которые можно кэшировать для каждого пользователя.Тогда 20% из них настроены для этого пользователя.Например, мне может потребоваться отобразить
- Последние 5 просмотренных элементов
- Избранные элементы
Эти два «виджета» будут характерны для каждого пользователя.Я рассматривал возможность использования ESI для этих компонентов, но потом решил, что наиболее трудоемким аспектом любого / моего приложения Zend Framework является процесс начальной загрузки и отправки.Так что, если мое приложение занимает 80 мс в настоящее время без кэширования.Как 90% относительного времени тратится на загрузку и на подключаемые модули, если бы я использовал ESI для загрузки этих двух «виджетов», то я бы эффективно добавил нагрузку на каждую страницу?Поскольку я буду инициировать еще один запрос 80 мс для каждой кэшированной страницы.
В этом случае вы бы посоветовали просто загрузить настроенные виджеты / фрагменты с помощью JavaScript, которые можно извлечь после загрузки начальной страницы.Очевидным преимуществом этого является то, что существует только один запрос, который кэшируется, а затем все настроенные данные извлекаются в одном запросе после обработки начальной страницы (которая кэшируется).
Если я ищу максимальную производительность, это кажется лучшим решением?