У меня есть запрос, который приносит около 50+ сообщений (я знаю, что это не идеально, но должен был сделать это, чтобы создать что-то, что просил клиент…) и набор циклов, чтобы упорядочить их определенным образом, и похоже, что эта последовательность задержка частей рендеринга страницы.
Я хотел бы кэшировать в переходном режиме весь этот блок отображаемого HTML, возможно ли это?
Имейте в виду, что переходные процессы являются «временными», и если у вас нет постоянной настройки кэша, добавленной поверх WordPress, то они бесполезны для всего, что используется только один раз на странице. Переходные процессы лучше всего использовать для вещей, которые вам нужны много раз, но их нужно вычислять только один раз.
@Tom J Теперь вы путаете переходные процессы с кешем. Кэш не является постоянным (если только с плагином), переходные процессы всегда сохраняются (с плагином или без него). Без плагина переходные процессы сохраняются в базе данных с помощью API настроек.
ах как стыдно с моей стороны лол
Упс, я сам ошибся —
Options API
, а неSettings API
. 🙂Я предполагаю, что довольно низко (менее 10). Проблема в том, что у меня довольно много циклов/жонглирования для сортировки и отображения так, как мне нужно. memcache (со всем его окружением) выглядит слишком много.
Переходные процессы автоматически используют кеш объектов, если такой плагин активен. Нет необходимости использовать
wp_cache_set()
, если переходная механика больше подходит для задачи.Да, мой единственный вопрос был бы о количестве данных, которые вы можете разумно хранить в переходном процессе. Это ДЛИННЫЙ ТЕКСТ, так что… много. 🙂
Документация Transients API формулирует предлагаемое использование следующим образом:
Ваш случай кажется идеальным подходящим для этого описания. С технической стороны вам нужно будет объединить свой вывод в переменную и поместить в переходный процесс, а не отображать его.
Если бы я реализовал это сегодня, я бы предпочел кеш объектов memcache, сохраняя данные с помощью
wp_cache_set()
, возможно, обновляя данные с помощью WP_Cron, а не во время загрузки страницы.О каком количестве килобайт идет речь?