De ce să folosiți bani?
Dar să ne întoarcem la Joomla, și pentru a fi mai precis, avem de-a face aici cu cache de aplicatii web - crearea de copii statice temporare ale paginilor dinamice (sau unități mai mici de informații). Caching este tipic pentru aplicații web, precum și un site web tipic afișează din nou și din nou același conținut, și fără un cache ar trebui să fie toate regenerat pentru fiecare pagină de afișare. sistem de cache stochează temporar informația de cod generate în obiectul cache, și dă-l înapoi atunci când este solicitat de către utilizator următor.
Tipuri de cache în Joomla
Cache pagina (pagina cache)
Aceasta face ca întregul imagini de pagină, inclusiv totul: componente, module, plugin-uri și șablon. Este cel mai rapid, dar cel mai puțin cache abordare flexibilă. „- Un sistem de cache“, trebuie să activați plugin-ul pentru al activa.
cache progresivă (cache progresivă)
Acest tip de memorie cache a apărut în Joomla 1.6. El fotografiază fiecare set unic de module (de obicei, fiecare pagină). Aceasta afectează toate modulele și funcționează ca un strat de mai sus, modulul de cache, setările imperative. Acesta arată conținutul pentru fiecare vizitator în parte. Activat atunci când instalați nivelul de cache-ul este setat la „Progressive“ în setările generale site-ului.
cache-ul standard (cache Conservator)
Dacă aveți nevoie de un control mai bun asupra fiecărui modul de cache separat, apoi utilizați cache nivel standard. O altă diferență din cache progresivă este că arată același conținut în cache pentru toți vizitatorii site-ului.
Modulul Cache și componenta de raportare
Ele formează un grup distinct ca ambele produc ieșiri statice complete de componente de copiere sau module. Acesta este cel mai frecvent tip de memorie cache, care este uneori echivalează cu cache în Joomla, în general.
Partea sa pozitivă este că el funcționează bine în ceea ce privește viteza. O latură negativă este că acesta dezactivează orice interacțiune cu utilizatorul<->extensie<->cadru, în timp ce nu expiră copia din cache. Acest lucru înseamnă că nu este potrivit pentru componente sau module care răspund la datele introduse de utilizator sau de afișare se schimbă frecvent de conținut.
Deoarece copia din cache a modulului sau componenta conține doar producția proprie, orice fișier extern, care poate fi cauzată prin utilizarea unor metode, cum ar fi $ pe documente> addStyleSheet () nu va fi conectat. Ei au fost inventate de o varietate de soluții, dar toate necesită resurse de calcul suplimentare, ceea ce reduce efectul utilizării de cache.
Caching componentei
Caching componentei este realizată prin metoda de afișare ($ cachable, $ safeurlparams) controler. Pentru acest parametru $ cachebale trebuie setat la true. și prin parametrul $ urlparams matrice transmite URL-parametri și tipuri de filtre:
În acest caz, o serie de URL-parametri creează o memorie cache ID unic.
Modul Moduri cache
Există 5 mod diferit modul de cache. Trei dintre ele sunt activate prin cachemode câmp în modul XML-fișier manifest:
- static - un fișier cache va fi folosit pentru toate paginile cu aceiași parametri de module. Recomandat pentru modulele care nu se schimba.
- Itemid - se schimbă atunci când schimbă Itemid. Acest mod este cel mai potrivit pentru module dinamice, care variază de la o pagină la alta, cum ar fi meniurile, imagini de conținut etc.
- oldstatic - compatibil înapoi cu Joomla 1.5 Mod.
Un alt mod de două în cache trebuie să fie numit direct de la modulul:
Pentru a utiliza aceste două moduri, în loc de câmp cachemode utilizați owncache câmp în fișierul XML-manifest:
Și apoi apel metoda JModuleHelper :: moduleCache (modulul $, $ moduleparams, $ cacheparams) de la punctul de intrare modulului.
Proprietățile obiectului care sunt transferate în moduleCache metoda (). Ele nu necesită explicații speciale. Ca exemplu putem lua materialele legate de modul (mod_related_items), care utilizează modul și înlocuiește safeuri funcția noncached modRelatedItemsHelper :: getList ($ params):
Cache apel invers (Callback cache)
Acest tip de memorie cache permite diferențierea diferitelor părți ale expansiunii și cache numai cele care trebuie să fie stocate în memoria cache, lăsând în același timp o parte din dinamica non-cacheable. Caches invocării codul funcției.
Memoria cache de ieșire (cache de ieșire)
ieșire Caches o parte din script-ul. Practic, este de ieșire tampon cache, și este rar folosit.
Raw-cache (cache Raw)
Memorii cache orice elemente de date. Complet controlat de dezvoltator - ceea ce pentru a salva, atunci când pentru a salva și modul de clasificare a elementelor stocate (cache id). Acest tip de memorie cache este utilizat de multe ori Joomla nucleu pentru diverse operații: lista ingredientelor, lista modulelor, arborele de meniu, limbile disponibile, grupuri de utilizatori, etc.
Workarounds (Workarounds)
setWorkarounds
JCache :: setWorkarounds metoda (date $, opțiuni de $ = array ()) pregătește datele care urmează să fie stocate în memoria cache, împreună cu soluții, și acceptă următoarele opțiuni:
- nopathway - pentru a nu salva calea de date
- nohead - nu salvați date antet
- nomodules - pentru a nu salva modulul de date
- modulemode - în cazul în care nohead este 0, modulul nu salvează următoarele date: titlu. descriere. link-ul. metaetichete
getWorkarounds
Metoda JCache :: getWorkarounds (date $, opțiuni $ = array ()) se aplică workaround pe datele stocate cu workarounds. El recreează antet, calea și module și returnează datele principale stocate. Acesta funcționează în mod automat - workaround specifice se efectuează numai în cazul în care datele au fost depozitate separat.
Diferența în utilizarea callback cache și raw-cache
De obicei, în componenta de proiectare este o reprezentare suficientă a cache, în special în ceea ce privește componentele simple. Dar dacă o componentă creează conținut de pe zbor, cel mai bine este de a alege un alt tip de memorie cache. În această situație, cache-ul va fi convenabil apel invers sau raw-cache.
cache-ul de apel invers va reveni exact același rezultat, care ar reveni nezakeshirovannaya funcția, numai rezultatul este în cache. Direct funcție va fi numit numai atunci când primul apel la ea.
Noi numim caching folosind JFactory :: getCache (). și dacă vom folosi cache-ul de apel invers, codul nostru ar arata astfel:
Ultimii trei parametri în metoda get () sunt opționale.
Vă rugăm să rețineți că acest lucru nu este același get () metoda. pe care le folosim în prime-cache. cache-ul de apel invers primește automat date, în cazul în care acestea există. Dacă nu, el cheamă înapoi, returnează date de apel invers și a le stoca până la următorul apel. În metoda de apel invers nu există magazin cache ()!
Atunci când se utilizează prime-cache dezvoltator are acces direct la metodele de a obține () și magazin (). și logica este responsabil direct la dezvoltator. Acest cache este util atunci când doriți să salvați informațiile, dar nu apelează funcția (de exemplu: XML-date, imagini, descrierea mărfurilor, etc.), sau atunci când aveți nevoie pentru a transfera cantități mari de date de la o pagină la alta.
Mai jos este codul pentru utilizarea de prime-cache:
Pentru a utiliza prime-cache ca metodă de al doilea parametru getCache (), trebuie să treacă un șir gol.
Ce se întâmplă dacă mai multe memorii cache va rula în același timp?
Tipuri de memorii cache lucrează ca straturi opace pe partea de sus a reciproc (cu excepția componentei / modulului de prezentare cache care se execută în paralel). Pentru a înțelege acest lucru, trebuie să ne imaginăm că ne uităm la o pagină web din partea de sus, în cazul în care cache-ul paginii este nivelul de sus, în timp ce producția de cache de apel invers și prime-cache reprezintă nivelul inferior. Se pare că nivelurile superioare se suprapun mai mici, și de exemplu, atunci când se utilizează restul cache pagina cache nu mai este valabil.
Dar există o excepție atunci când folosim momente diferite pentru diferite tipuri de cache. De exemplu, putem fi memorată în cache pentru o perioadă scurtă de timp și pentru a cache imagini pentru mult timp. În acest caz, redarea imaginii paginii va fi scos din cache.
cache stivuitoare
Manipulatorii cache - este necalificată. Ei fac toate treburile murdare și de a salva informațiile de pe suportul media. Pentru a utiliza cache-ul trebuie să fie disponibile cel puțin un handler cache.
În mod implicit Joomla utilizează un fișier ca un handler cache, care utilizează fișiere pentru a stoca informații. Acest procesor funcționează în condiții de siguranță, dar este mai lent decât procesoarele, care se bazează pe lucrul cu RAM. În cazul în care handler fișierul nu este disponibil, este necesar să se stabilească permisiunile pe folderul cache. că serverul de web se poate scrie la informațiile ei.
Fișierele utilizează, de asemenea, handler Cache_Lite. În plus, Joomla poate fi utilizat: APC, eAccelerator, Memcached, XCache, WinCache și Redis. Toate acestea utilizează memoria.