Este posibil să salvezi un întreg bloc de HTML randat într-un transient?

7 sept. 2010, 18:45:23
Vizualizări: 1.02K
Voturi: 1

Am o interogare care returnează aproximativ 50+ articole (știu că nu este ideal, dar a trebuit să fac asta pentru a construi ceva ce a cerut clientul...) și un set de bucle pentru a le ordona într-un anumit mod și se pare că această secvență întârzie randarea paginii.

Aș dori să cachez într-un transient acest întreg bloc de HTML randat, este posibil acest lucru?

4
Comentarii

Ține minte că transient-urile sunt 'efemere' și, cu excepția cazului în care ai un cache persistent configurat deasupra WordPress, sunt inutile pentru orice lucru care este folosit o singură dată într-o pagină. Transient-urile sunt cele mai potrivite pentru lucrurile de care ai nevoie de mai multe ori, dar care ar trebui calculate o singură dată.

Tom J Nowell Tom J Nowell
12 sept. 2010 16:39:04

@Tom J Nowell confunzi transient-urile cu cache-ul. Cache-ul nu este persistent (decât cu plugin), transient-urile sunt întotdeauna persistente (cu sau fără plugin). Fără plugin, transient-urile sunt stocate în baza de date folosind Settings API.

Rarst Rarst
17 sept. 2010 07:00:51

ah, ce rușine de mine lol

Tom J Nowell Tom J Nowell
17 sept. 2010 12:12:50

Ups, am făcut o greșeală de-al meu - Options API, nu Settings API. :)

Rarst Rarst
17 sept. 2010 14:08:21
Toate răspunsurile la întrebare 2
0

Documentația Transients API formulează utilizarea recomandată ca:

interogări lungi/scumpe la baza de date sau procesare complexă de date

Cazul tău pare a fi o potrivire perfectă pentru această descriere. Din punct de vedere tehnic, va trebui să concatenezi rezultatul într-o variabilă și să o pui într-un transient, în loc să o afișezi direct.

12 sept. 2010 16:13:53
3

Dacă aș implementa acest lucru astăzi, preferința mea ar fi memcache object cache, stocând datele folosind wp_cache_set(), eventual actualizând datele folosind WP_Cron în loc să o fac în timpul încărcării paginii.

Despre câte kilobyte vorbim exact?

7 sept. 2010 19:00:25
Comentarii

Presupun că destul de mic (sub 10)... problema este că am destul de multă buclă/manipulare pentru a sorta și afișa așa cum am nevoie. memcache (cu tot ce implică) pare un pic prea mult.

Amit Amit
8 sept. 2010 00:19:52

Tranzientele folosesc automat cache-ul de obiecte dacă un astfel de plugin este activ. Nu este nevoie să folosești wp_cache_set() dacă mecanismul tranzientelor este mai potrivit pentru sarcina respectivă.

Rarst Rarst
12 sept. 2010 16:15:01

Da, singura mea întrebare ar fi fost cantitatea de date pe care o poți stoca rezonabil într-un tranzient. Este un LONGTEXT, deci... destul. :)

User User
12 sept. 2010 16:26:04