кэш, а потом ее целиком доставать. на какие события плагина можно это повесить?
никто так не делал? или идея говно? просто есть ресурсы где технически кэш не могу включить. а сниппеты долго отрабатывают.
ну вы то можете страницу повесить в кеш, но доставать ее нужно будет, проверив... + закешируется все намертво....
ну стандартный кэш мне не подходит. у меня один ресурс на поддомены, и город там тоже кэшируется
Стандартный механизм кэша подходит, только ключ кэша надо ставить свой. Какие события - подсмотри в пакете cacheRegenerator (от Fi1osof вроде) и ещё какой-то есть, вроде от Bob Ray И ещё ищите в пакете modHelpers функции, связанные с кэшированием, и в pdotools, общие параметры. Сорри, все без ссылок, я с телефона) #cache #кэширование #кэш #pagespeed
Какой ключ кэша? Куда вставлять?
не.. Дима, ему нужно уже готовую страницу, как я понял.
Ну я понял, делал такое )) Код всей страницы модно взять из переменной в событии onWebPagePrerender (вроде) и поместить в кэш? Или вообще обернуть в {set}{/set} в fenom весь код шаблона, и дальше его положить в кэш с нужным ключом (например название города или ещё какой-то признак зашить в него. Это же просто переменная, чтобы потом оттуда достать)
я тоже сделал, правил несколько методов в xpdoapccache.class
правил xpdocachemanager.class
Или при фориировании, это когда из админки сохраняется? Тогда от onManagerPageSave или как там его... Делать запрос к странице и забирать её код. Простое решение - через curl (так сделал боб рей), сложное - через modx api (так сделал философ). Я все что нужно для победы, написал в первом сообщении 😉 Найдите профильные темы на modx.pro и там будут все решения. Тема не простая, в двух словах не описать. Но она раскрыта уже, по пути, что я указал
правил методы isInitialized и getCacheKey
Дело твоё, конечно, но есть способы без потери возможности обновления (правки ядра) сделать это, используя плагины. Либо задачу нужно изучать глубже, может конечно ты хочешь настолько странного, что надо лезть в ядро, но сомневаюсь)
вообще тут зависит от того что имеется ввиду под "формирование страницы". Отсюда и выбор события/решения.
Страница товара для разных городов , из уникального ссылки, навание города и условия доставки
А сейчас эта страница как формируется?
просто, без кэша страницы
А по конкретнее? "без кэша" - это у ресурса отключена галка "кэшировать" ? В шаблоне все сниппеты запускаются некешируемо ? Где и как проверяется условие вывода (зависимость от города)?
Ну короче вытягивать из тебя я не буду. Тебе нужна помощь, а не мне.
город д и настройки контекста кладутся в конфиг в кэш. для каждого поддомена город доступен [[++city]]
сниппеты все некэшируемые
там просто страниц очень много. 6к ресурсов * 200 городов. да и с включенным кэшем ресурса прироста нет по отклику
Ну короче не зная всех нюансов, сложно сказать. Идея пока только одна: в шаблоне вызывать свой кастомный сниппет, в котором записывать или брать из кэша данные в зависимости от каких-то условий (например, город + ресурс). А так, возможно, у тебя на каждом этапе можно оптимизировать процесс, тем самым снизить общую отрисовку страницы...Например, каким образом берутся данные из базы? Прямым sql запросом (через API) или конструкцией типа $modx->getObject('msProduct'). Во втором случае будет дольше, т.к. создаётся объект и т.п. Т.е. нужно тут смотреть в том числе и код...
да $modx->getObject('msProduct'), работаю с объектами стандартно.ок, спасибо буду тестировать. это делая в основном для роботов чтобы процессор разгрузить. на диске для кэша место есть , да и отклик будет лучше для робота. кстати многие ставят капчу, как думаете она помогает? индексации не мешает? тк парсят не только роботы а ресурсы которые клонов сайтов продают. твой недавно нашел на таком ресурсе)))
не знаю, про роботов ничего сказать не могу...
Обсуждают сегодня