- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Возникла необходимость закешировать один блок на сайте, а именно вывод последних поисков, использовал вот этот код, вставил его перед блоком который надо кешировать
Сюда вставляю блок который надо закешировать, условно <?php last_searches() ?> он кешируется, но вот проблемка, весь оставшийся вывод страницы тоже кешируется, то есть блок <?php footer() ?> мне не надо кешировать, там есть динамические php скрипты которые нельзя кешировать.
Как прервать кеширование и вывести оставшуюся часть кода не из кеша?
Пробовал добавлять после <?php last_searches() ?><? ob_end_flush() ?> так блок кешируется и берётся из кеша, но оставшийся вывод страницы не выводится, то есть страница прерывается на закешированном блоке, а мне надо чтобы оставшаяся часть загружалась не из кеша, возможно ли такое сделать?
оставшийся вывод страницы не выводится, то есть страница прерывается на закешированном блоке
У тебя функция
заканчивается конструкцией exit. И чего ты тогда ещё ожидаешь?
Проверь скрипт на ошибки.
Ошибок нет, это вордпресс, какие там могут быть ошибки, там всё по блокам, мне надо исключить footer, да возможно я неправильно назвал это объектным кешированием, это буфер вывода, читаю сейчас в других местах и похоже нет такого способа вывести остальной код после кешированного с помощью буфера вывода, либо прерывать, либо кешировать всё, либо опускать кешируемый блок в самый низ страницы чтобы он ничего другого не кешировал, а уже потом выводить этот блок с помощью css в другом месте страницы, в моём случае можно ещё перенести из футера динамические скрипты в другое место и кешировать вместе с футером, короче буду думать, пока включил request_uri и кеширую каждую страницу, что как бы не очень хорошо, за сутки 10к файлов набралось в папке кеша, нагрузка на файловую систему впски растёт.
короче буду думать
Тут нехрена думать, я выше исправил свой коммент.
Тут нехрена думать, я выше исправил свой коммент.
То есть убрать exit или заменить его на что то другое? Просто конкретно в этом коде я не шибко разбираюсь, взял его с другого сайта он вроде работает, кеширует, ошибок не выдаёт.
Конструкция exit прерывает выполнение всего скрипта. Поэтому после окончания работы функции уже ничего не происходит. Просто убери exit. Это что касается функции. Ну и надо как-то переписать слегка код, чтобы в случае вывода контента из файла не выводился контент из last_searches() . Сейчас там чуть накосячено, как мне кажется. Лень конкретное решение писать, время позднее уже.
Конструкция exit прерывает выполнение всего скрипта. Поэтому после окончания работы функции уже ничего не происходит. Просто убери exit.
exit убрал, но теперь появилась другая проблема, блок кешируется, но отображается дублем, получается показываются два блока один из кеша, а другой не из кеша, но вывод страницы теперь не прерывается, осталось теперь разобраться с дублем.
UPD: ob_end_flush поменял на ob_get_clean, так дубля нет, только надо убедиться что вывод берётся из кеша.
upd2: судя по времени отклика, вывод берётся не из кеша :(
В вашей конструкции, кажется мне, что подгружается вся страница с блоком, а затем он кэшируется (пытается, создавая нагрузку).
Чую, что по факту кэш создаётся каждый раз, после F5.
Проверьте дату создания КЭШ файлов (время)...
ob_get_.... а тут зависит от сервера, а не от хостинга, чем больше оперативы, тем лучше.
По нашенски, по "Русски" - Нах облегчать и оптимизировать код, когда можно увеличить мощностя сервера.
В вашей конструкции, кажется мне, что подгружается вся страница с блоком, а затем он кэшируется (пытается, создавая нагрузку).
Чую, что по факту кэш создаётся каждый раз, после F5.
Проверьте дату создания КЭШ файлов (время)...
ob_get_.... а тут зависит от сервера, а не от хостинга, чем больше оперативы, тем лучше.
По нашенски, по "Русски" - Нах облегчать и оптимизировать код, когда можно увеличить мощностя сервера.