È possibile salvare un intero blocco di HTML renderizzato in un transient?

7 set 2010, 18:45:23
Visualizzazioni: 1.02K
Voti: 1

Ho una query che recupera circa 50+ post (so che non è l'ideale ma ho dovuto farlo per costruire qualcosa che il cliente ha richiesto...) e una serie di loop per ordinarli in un certo modo e sembra che questa sequenza stia ritardando parti del rendering della pagina.

Mi piacerebbe memorizzare in cache in un transient questo intero blocco di HTML renderizzato, è possibile farlo?

4
Commenti

Tieni presente che i transient sono "transitori" e, a meno che tu non abbia configurato una cache persistente su WordPress, sono inutili per qualsiasi cosa che viene utilizzata solo una volta in una pagina. I transient sono più adatti per elementi che ti servono molte volte ma che dovrebbero essere calcolati una sola volta.

Tom J Nowell Tom J Nowell
12 set 2010 16:39:04

@Tom J Nowell stai confondendo i transient con la cache. La cache non è persistente (a meno che non si utilizzi un plugin), mentre i transient sono sempre persistenti (con o senza plugin). Senza plugin, i transient vengono memorizzati nel database utilizzando l'API delle impostazioni.

Rarst Rarst
17 set 2010 07:00:51

ah, che figuraccia lol

Tom J Nowell Tom J Nowell
17 set 2010 12:12:50

Ops, ho fatto un errore mio - Options API, non Settings API. :)

Rarst Rarst
17 set 2010 14:08:21
Tutte le risposte alla domanda 2
0

Transients API la documentazione formula il suggerimento di utilizzo come:

query al database lunghe/costose o dati complessi elaborati

Il tuo caso sembra adattarsi perfettamente a questa descrizione. Dal lato tecnico, dovrai concatenare il tuo output in una variabile e inserirlo in un transient, invece di visualizzarlo direttamente.

12 set 2010 16:13:53
3

Se dovessi implementarlo oggi, la mia preferenza sarebbe per l'object cache di memcache, memorizzando i dati utilizzando wp_cache_set(), possibilmente aggiornando i dati tramite WP_Cron invece che durante il caricamento della pagina.

Di quanti kilobyte stiamo parlando esattamente?

7 set 2010 19:00:25
Commenti

Immagino piuttosto basso (meno di 10)... il problema è che ho un bel po' di loop/gestione da fare per ordinare e visualizzare nel modo di cui ho bisogno. memcache (con tutto il suo contorno) sembra un po' eccessivo.

Amit Amit
8 set 2010 00:19:52

I transient utilizzano automaticamente la cache degli oggetti se è attivo un plugin del genere. Non c'è bisogno di usare wp_cache_set() se la meccanica dei transient è più adatta al compito.

Rarst Rarst
12 set 2010 16:15:01

Sì, la mia unica domanda sarebbe stata la quantità di dati che puoi ragionevolmente memorizzare in un transient. È un LONGTEXT, quindi... abbondante. :)

User User
12 set 2010 16:26:04