Лучший способ показать динамический контент на кэшированном сайте Wordpress?

14

Я действительно хочу использовать один из плагинов Cache, чтобы я мог показать больше статических страниц на моей теме / сайте WordPress. Это, очевидно, лучшее обновление производительности, которое вы можете сделать для темы / сайта WordPress.

В моей теме есть несколько динамических элементов, которые удерживают меня от перехода к статическим / кэшированным страницам.

Я изложу эти проблемы ниже и предоставлю возможный способ решения каждой проблемы, о которой я думал до сих пор.

Цель этого поста - либо получить лучшие идеи / методы для решения проблем, которые я объясняю, либо получить некоторое подтверждение того, что я на правильном пути, по крайней мере. Я ветеран PHP уже более 12-13 лет, но использую WordPress только в последние 1-2 года, и до сих пор я действительно впечатлен возможностями, теперь я настоящий фанат WordPress, если такая вещь существует, лол!

Итак, проблемы, о которых я думал до сих пор при конвертации в кэшированные страницы ...


Страница с одиночными сообщениями

  1. Проблема со счетчиком просмотров - у меня есть функция, которая извлекает значение счетчика для «Счетчика просмотров / посещений» на странице «Сообщения», чтобы дать представление о просмотрах сообщений для просмотра пользователем. Это не уникальные посетители, а просто счетчик посещений. Я создал отдельную таблицу MySQL для этих значений, и я все еще пытаюсь решить, следует ли мне продолжать с этим или переключиться на использование метаполя вместо этого. В любом случае при просмотре страницы значение базы данных выбирается и увеличивается на +1 при каждой загрузке страницы. (Представления пользователей-администраторов не добавляются.) Затем значение отображается на странице в виде988 Views

    Счетчик просмотров Возможное решение - я мог бы заставить это значение / функцию запускаться с использованием Ajax. После загрузки новой кэшированной / статической страницы Javascript может затем использовать Ajax для запроса и обновления счетчика просмотров для этой страницы. Это звучит как лучшее решение для чего-то подобного?

  2. Комментарии к сообщению Проблема - Использование WordPress по умолчанию Комментарий системы, каждый раз , когда новый комментарий добавляется к сообщению о, это потребовало бы страницу кэширования данных / Static на этот пост , чтобы быть повторно построен ! Из того, что я видел, на плагинах Caching, которые я видел, есть опция, которая позволит вам сделать это, вы можете перестраивать страницы каждый раз, когда на них публикуется новый комментарий. На бумаге это звучит хорошо, но я могу представить, что это кошмар на сайте с высоким трафиком / активным сайтом, когда у вас может быть несколько пользователей, которые комментируют одну и ту же статью в одно и то же время (все не протестированы, поэтому я не знаю)

    Публикация комментариев Возможное решение - поэтому для решения проблемы комментариев я упомянул выше решение, где вы можете настроить плагин Cache для простого перестраивания страницы Cached / Static при каждом новом комментарии. Меня беспокоило то, что я не совсем понимаю, насколько хорошо это будет работать в долгосрочной перспективе. Теперь другое возможное решение, которое, как я вижу, используется все больше и больше, заключается в использовании решения Javascript, такого как Disqus Comments или аналогичного решения. В течение долгого времени я действительно был против этого, так как хотел, чтобы все мои комментарии не полагались на сторонние системы комментариев. Я все еще вхожу в забор об этой проблеме, но перешел на использование комментариев Disqus на моем сайте, и пока он работает довольно хорошо. Я открыт для других возможных решений, хотя? Или вы думаете, что это действительно путь?

Боковая панель по всему сайту

  1. Проблема с недавними статьями на боковой панели - у меня на боковой панели есть вкладки, которые отображаются по всему сайту на каждой странице сайта ... одна из вкладок загружает 10 самых последних сообщений в блоге, поскольку они отображаются на каждой странице сайта. После добавления новой статьи / сообщения потребуется перестроить каждую страницу Cached / Static на сайте, чтобы отразить добавление новых сообщений в этот «Список последних сообщений».

    Боковая панель Последние статьи Возможное решение - Опять же, я думаю, что я нашел хорошее возможное решение. Я мог бы использовать Javascript и Ajax для загрузки этого содержимого в страницы Cached / Static, чтобы их ВСЕ не приходилось перестраивать так часто, а могли отображать самые последние сообщения.

    Это звучит как хорошее решение? Или, что более важно, вы можете придумать другое лучшее или альтернативное решение этой проблемы?


Пока я не пачкаю руки, это все возможные проблемы, которые я вижу до сих пор с преобразованием моей темы в Cache / Static Friendly


ОБНОВИТЬ

Я просто подумал о другой проблеме, чтобы подумать. Все теги / категории, а также пользовательские страницы должны будут обновляться каждый раз, когда добавляется сообщение, которое вписывается в этот список сообщений. Я предполагаю, что это должна быть особенность плагинов кеширования уже, я бы вообразил

JasonDavis
источник
1
Почему счетчик просмотров должен быть правильным каждый запрос? Что произойдет, если перед обновлением кэша пропадет 5-10 просмотров?
Юнсал Коркмаз

Ответы:

2

Итак, есть много подвопросов, я постараюсь ответить на каждый.

Проблема Счетчика Представлений - я мог заставить это Значение / функцию выполняться с помощью Ajax. После загрузки новой кэшированной / статической страницы Javascript может затем использовать Ajax для запроса и обновления счетчика просмотров для этой страницы.

Полностью согласен: добавлено преимущество: загрузка его через ajax после завершения загрузки «важного» контента. Сделайте все возможное, чтобы сократить время загрузки страницы. Я определенно пошел бы с Ajax на этот.

Отправить комментарий Проблема

Я сомневаюсь, что это будет большой проблемой. Но опять же: Аякс. Загружайте комментарии отдельно от «основного» контента. Регулярно отправляйте новые комментарии (как это делает Stackoverflow или twitter.com, предупреждая пользователя и ожидая его щелчка, чтобы обновить поток комментариев).

Боковая панель по всему сайту

Я бы использовал другой плагин: WP Widget Cache , который позволяет вам устанавливать время кэширования для каждого виджета на боковых панелях и хорошо работает с обычными плагинами кэширования. В вашем случае просто установите «0», чтобы не кэшировать эти виджеты, или «10 минут» (лучше, чем вообще не кэшировать).

pixeline
источник
1

Если вы используете общий кеш w3, вы можете исключить кеширование определенных страниц, таких как боковая панель.

Перейдите в WordPress Admin> Performance> Page Cache и измените раздел никогда не кэшировать эти страницы

Никогда не кэшируйте страницы W3 Total Cache
В этом примере показано, что файлы боковой панели в теме исключены из кэша.

Вы также можете установить более короткое время истечения на кэшированных страницах, например, 5 или 15 минут. Кэшированные страницы больше всего влияют на людей, которые впервые посещают сайт и у которых нет файла cookie сеанса. Поскольку наиболее часто запрашиваемое кэшированное представление страницы отображается впервые анонимным посетителям.

Damien
источник