Trucuri atunci când lucrați cu componente Bitrix

Două tipuri diferite de cache în componente

În majoritatea componentelor Bitrix standard, arrayul $ arResult și codul html sunt stocate simultan în cache. Cu toate acestea, atunci când scrieți propriile componente nu este întotdeauna convenabil, se întâmplă adesea ca în modelul necesar pentru a efectua unele cod pe fiecare hit, asa ca mai bine să cache numai datele din $ arResult. Mai jos am dat 2 exemple de cache (pentru component.php) - cu caching-html-cod și fără. Notați, în a doua variantă, șablonul este conectat după blocul de cache, iar locul acestuia este $ this-> EndResultCache ().







Caching $ arResult și șablon html-code:


Caching numai $ arResult:


Adăugați datele în memoria cache din șablon pentru utilizarea în component_epilog.php

Component_epilog.php este un fișier care se execută după ieșirea șablonului și nu este stocat în cache, adică aceasta pornește indiferent dacă codul html nou creat a fost afișat din șablon sau ieșit din memoria cache. În consecință, putem folosi acest fișier pentru a efectua unele acțiuni la fiecare lovitură, chiar, de exemplu, ieșiți codul html de mai sus pe pagină folosind funcțiile în așteptare. Dar datele disponibile în component_epilog.php sunt de obicei foarte limitate în componentele care utilizează html-caching. În acest exemplu, vă voi arăta cum să se extindă lista de date, astfel încât să inserați următorul cod în result_modifier.php fișierul Comp în șablon (de exemplu, folosind elementele cheie «“ în matrice $ arResult, conținând componenta «bitrix: news.list» principal matrice de date):








Scrieți în $ arResult componenta complexă părinte din șablon

Uneori, fișierele șablon de componente compozit (care nu au cache-ul lor), este convenabil de a avea unele date din acestea sunt folosite în componente convenționale (nekomleksnyh). Exemplu: După conectarea unei componente catalog.section.list noi, în conformitate cu structura de cod html furnizat de codor, este necesar pentru a accesa unele câmpuri din secțiunea șablon este o componentă integrată. Pentru a evita interogările suplimentare la baza de date și cache-ul inevitabil asociat sau pentru a re-conecta componenta catalog.section.list, procedați astfel:

Adăugați la componenta cache toate datele necesare, de exemplu, utilizați fișierul result_modifier.php pentru a adăuga o serie de $ arResult # 91; „SECȚIUNEA“ # 93;

În fișierul component_epilog.php, obținem obiectul component părinte, dacă este disponibil, și folosim proprietatea arResult pentru a scrie valoarea







Articole similare

Trimiteți-le prietenilor: