Continuăm despre cache

Continuăm despre cache

Continuând subiectul optimizării vitezei descărcării site-ului, vreau să vorbesc despre o nouă tehnologie de la Bitrix - un site compozit. Ca de obicei, totul este nou - este bine uitat vechi, și că tehnologia este, în general, nu foarte diferit de cache întreaga pagină în același sau ne WordPress phpbb, cu excepția faptului că o serie de îmbunătățiri tehnice. Dar, despre tot - în ordine.







Așa cum am spus înainte, trebuie să stabiliți care dintre componente vor fi complet statice (nu se schimbă în timp sau de la acțiunile utilizatorului), dinamice (adesea schimbătoare) și parțial dinamice.
Ca un exemplu de componente statice pot acționa ca blocuri la lista de știri (afișate în ordine cronologică), pagini detaliate materiale (știri, articole, produse), includ zone - în general, tot ceea ce se schimbă relativ rare.
O componentă complet dinamică poate fi una inutilă pentru a adăuga la memoria cache (care va fi complet actualizată la următorul hit). Reprezentanții tipici sunt componente cu o selecție aleatorie de bunuri, articole.
Un exemplu de componentă parțial dinamică este una care depinde de acțiunile utilizatorului. De exemplu - un coș pe site sau starea contului intern al utilizatorului, un bloc cu o alegere a regiunii etc.

Acum despre cum să predați tehnic componentele pentru a lucra cu un compozit.
În cazul componentelor statice - suficient pentru a adăuga la partea de sus a metodei șablon numesc $ this-> setFrameMode (true);. Acest apel ne spune șablonul că el va fi întotdeauna un „vot“ pentru compozit (aici și apoi voi folosi termenul de „vot“ pentru a puternic pentru a nu se abate de la terminologia Bitrix).







Cu componente dinamice, totul este ceva mai complicat. Să considerăm mai întâi "parțial dinamic" în exemplul coșului utilizatorului. De exemplu, în coșul nostru vom arăta numărul de produse din minciună. Este rezonabil să presupunem că zona dinamică din această componentă va fi cantitatea de bunuri:

În acest exemplu, se observă că, în funcție de numărul de articole în coșul se schimbă semnul, respectiv, este necesar să se aloce un bloc dinamic, iar restul marcat ca fiind conținutul memorat în cache. A spus - făcut! Pentru a marca șablonul componentă dinamică, este necesar ca la început pentru a apela metoda $ this-> createFrame () -> începe ();. Această metodă returnează o instanță a clasei care gestionează cache-ul în șabloanele componente. Sunați-l astfel:

$ obFrame = $ this-> createFrame () -> începe ("Descărcare");
După aceea, în configurația șablonului în locul potrivit, trebuie să selectați o condiție, în funcție de care textul este afișat (codul este simplificat, nu uitați să traduceți textele în constante de limbă):