Кеширане MODx Revo, webdevkin

Ако сте направили няколко сайтове в MODx, вероятно вече се сблъскват с проблема за кеширане и изчистване на кеш паметта правилно. Следната таблица показва, как кеша MODx и как да се създаде приставка за изчистване на кеш паметта на един ресурс.

Файл кеш по подразбиране MODx Revo не винаги работи както искаме. Какво точно е станало?

За кеширане документи MODx срещне 2 кърлежи в раздела Настройки. Ако сте маркирали "кеширана", и тя е маркирана по подразбиране, за първи път документ се запазва в кеш файл, от които четенето ще бъде много по-бързо за него. Разбира се, ако не разполагате с статична страница с чиста HTML. Проверете "Clear Cache", ще създаде задължителна почистване за следващата покана за кеша на ресурсите е пресъздадена наново, и посетителите на сайта да видят промените, направени от нас.

Проблемът е, че когато запазвате документ изчиства целия кеш на сайта, а не на документа, промените в които сме направили. Ако имате малък онлайн визитка с генериране на кратко страница, на мястото на работа е от решаващо значение не се отрази. Но ако имаме повече ресурси с няколко стотин страници от тежък, поколение, което отнема 2-3 секунди, след което grohane целия кеш при редактиране малка печатна грешка в статия, се превръща в голям лукс.

Всичко, от което се нуждаете е да се създаде приставка да изчистите кеш паметта на даден ресурс, когато запазвате документ. В този случай, кеша на други документи трябва да остане непокътната. Решение podsmotreno Василий Bezumkina и леко разширен, за да отговарят на нашите нужди.

Така че, на самия плъгин. Вие трябва да го създадете под всяко име и възлага системни събития и OnDocFormRender OnDocFormSave. На първия случай ние деактивирате опцията "Изчистване на кеша". Можете да проверите това чрез поставяне приставка и отворите документ администратор - отметка ще бъдат премахнати. Второто събитие е кодът, за да изчистите кеша на текущия документ.

Всичко работи добре! Но сега нека да погледнем малко по-нататък.

Да кажем, че ние трябва да "Всички новини" уебсайт, където заглавията и резюметата на новини самите предавания. Когато рестартирате кеш конкретна новина също трябва да "рестартира" и "Всички новини", защото не са непременно щеше да редактирате текста в полето за съдържание, както и да промените или PAGETITLE introtext. В съответствие с това, в допълнение към изчисти кеша на запазените ресурси трябва да губят друга страница. В допълнение, ние може да бъде различна "отбори" страница, която работи на същия принцип. Конфигуриране почистване на такива страници кеш е лесно, ние просто трябва да добавите към нашата приставка, в случай OnDocFormSave няколко реда.

Нека да разгледаме този пример.
Да предположим, че трябва да "Всички новини" с ИД = 10 "статии" с идентификатор = 15 и "конкурси" с ИД = 50. Самата новина има 5 шаблон = шаблон. Плюс това има карта на сайта (да не се бърка с sitemap.xml), където една и съща новина с идентификатор = 100 излъчване. Ние считаме, 2 възможности:

1. При редактиране отделна статия или конкурс трябва да изчистите кеша на съответните страници на родителя

2. Ясно картата на кеш сайт за новини за редактиране - документ от шаблон = 5

Разбира се, тези правила могат да се комбинират в зависимост от структурата на вашия сайт. Още по-добре, не копирайте го и го поставете същия код и изберете конкретен почистване документ кеш в отделна функция. Кодът ще бъде по-кратък, по-чисти, и ще се съсредоточи върху логиката на вашия сайт и да се определят специфични правила за почистване на кеша