¿Es posible guardar un fragmento completo de HTML renderizado en un transitorio?

7 sept 2010, 18:45:23
Vistas: 1.02K
Votos: 1

Tengo una consulta que trae alrededor de 50+ publicaciones (sé que no es ideal pero tuve que hacerlo para construir algo que el cliente pidió...) y un conjunto de bucles para ordenarlos de cierta manera y parece que esta secuencia está retrasando partes del renderizado de la página.

Me gustaría almacenar en un transitorio este bloque completo de HTML renderizado, ¿es posible hacerlo?

4
Comentarios

Ten en cuenta que los transientes son 'transitorios' y, a menos que tengas una configuración de caché persistente agregada además de WordPress, entonces son inútiles para cualquier cosa que solo se use una vez en una página. Los transientes son mejores para cosas que necesitas muchas veces pero que solo deberían calcularse una vez.

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

@Tom J Nowell estás confundiendo transientes con caché. La caché no es persistente (a menos que sea con un plugin), los transientes siempre son persistentes (con o sin plugin). Sin un plugin, los transientes se almacenan en la base de datos usando la API de Configuraciones.

Rarst Rarst
17 sept 2010 07:00:51

ah, qué vergüenza la mía lol

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

Ups, cometí un error propio - Options API, no Settings API. :)

Rarst Rarst
17 sept 2010 14:08:21
Todas las respuestas a la pregunta 2
0

La documentación de la API de Transients formula el uso sugerido como:

consultas de base de datos largas/costosas o datos procesados complejos

Tu caso parece encajar perfectamente en esta descripción. En el lado técnico, necesitarás concatenar tu salida en una variable y guardarla en un transient, en lugar de mostrarla directamente.

12 sept 2010 16:13:53
3

Si tuviera que implementar esto hoy, mi preferencia sería el caché de objetos de memcache, almacenando los datos usando wp_cache_set(), posiblemente actualizando los datos mediante WP_Cron en lugar de durante la carga de la página.

¿De cuántos kilobytes exactamente estamos hablando?

7 sept 2010 19:00:25
Comentarios

Supongo que es bastante bajo (menos de 10)... el problema es que tengo bastante bucle/manipulación para ordenar y mostrar como necesito. memcache (con todo lo que conlleva) parece un poco excesivo.

Amit Amit
8 sept 2010 00:19:52

Los transientes automáticamente utilizan la caché de objetos si hay un plugin activo que lo proporcione. No es necesario usar wp_cache_set() si la mecánica de transientes es más adecuada para la tarea.

Rarst Rarst
12 sept 2010 16:15:01

Sí, mi única duda sería la cantidad de datos que puedes almacenar razonablemente en un transiente. Es un LONGTEXT, así que... mucho. :)

User User
12 sept 2010 16:26:04