Caching revo Mod X, webdevkin

Dacă ați făcut câteva site-uri de pe MODX, probabil că deja se confruntă cu problema cache și clar corect memoria cache. Următoarele arată modul în care cache-ul MODX și modul de a crea un plug-in pentru a goli cache-ul unei resurse.

fișierul cache implicit MODX Revo nu funcționează întotdeauna modul în care ne dorim. Ce anume este greșit?

Pentru documentele de cache MODX întâlni 2 căpușe pe fila Setări. Dacă ați bifat „cache“ și este marcat în mod implicit, prima dată când un document este salvat în fișierul cache din care citirea va fi mult mai rapid pentru el. Desigur, dacă nu aveți o pagină statică cu apa curata html. Verificați „Clear Cache“, am stabilit o curățare obligatorie pentru următorul apel la cache-ul de resurse este recreat din nou, iar vizitatorii site-ului vezi modificările făcute de noi.

Problema este că, atunci când salvați un document șterge tot cache-ul de pe site-ul, nu documentul, modificările în care le-am făcut. Dacă aveți o mică carte de vizita online, cu o generație pagină scurtă, la locul de muncă este critică nu afectează. Dar dacă avem mai multe resurse cu mai multe sute de pagini de grele, generarea de care durează 2-3 secunde, apoi grohane întreaga memorie cache la editarea unui mic greșeală de scriere într-un articol devine un mare lux.

Tot ce avem nevoie este de a crea un plug-in pentru a goli cache-ul unei anumite resurse la salvarea unui document. În acest caz, cache-ul altor documente ar trebui să rămână intacte. Soluția podsmotreno Vasile Bezumkina și ușor extins pentru a se potrivi nevoilor noastre.

Deci, plugin-ul în sine. Ai nevoie să-l creați sub orice nume și atribuie evenimente de sistem și OnDocFormRender OnDocFormSave. La primul eveniment vom dezactiva opțiunea „Clear cache.“ Puteți verifica acest lucru prin inserarea unui plug-in și deschide orice document de admin - bifă va fi eliminat. Al doilea eveniment este codul pentru a șterge memoria cache a documentului curent.

Totul funcționează bine! Dar acum să ne uităm un pic mai departe.

Să presupunem că avem de a „All News“, site-ul în cazul în care titlurile și rezumatele de știri se difuzează. Când resetați știrile specifică cache trebuie, de asemenea, „reset“ și „Toate știrile“, pentru că nu sunt în mod necesar de gând să editați textul din câmpul de conținut, și se pot schimba sau introtext PAGETITLE. Prin urmare, în plus față de a reseta cache-ul de resurse economisite trebuie să piardă, de asemenea, o altă pagină. În plus, am putea fi alte „echipe“, pagina care funcționează pe același principiu. Configurarea cache de curățare pentru astfel de pagini este ușor, trebuie doar să adăugați la plug-in noastră, în cazul OnDocFormSave câteva rânduri.

Să ne uităm la acest exemplu.
Să presupunem, avem de a "All News" cu id = 10 "Articole" cu id = 15 și "concursuri" cu id = 50. Vestea in sine are 5 șablon = șablon. În plus există o hartă a site (a nu se confunda cu sitemap.xml), în cazul în care aceeași știri cu id = 100 de difuzare. Considerăm 2 posibilități:

1. Atunci când editați un articol de știri separat sau un concurs trebuie să goliți memoria cache a paginilor relevante ale părintelui

2. Goliți harta site-ului cache pentru editare de știri - un document dintr-un șablon = 5

Desigur, aceste reguli pot fi combinate în funcție de structura site-ului. Mai bine încă, nu copiați-lipiți același cod, și selectați o anumită curățare documente cache într-o funcție separată. Codul va fi mai scurt, mai curat, și se va concentra pe logica site-ul dvs. și de a defini reguli specifice de curățare cache