Esiste un pericolo nell'eliminazione di tutti i transitori?


9

Ho un grande sito per un cliente e poiché è un'installazione wordpress davvero personalizzata con molte estensioni per funzionalità, non riesco a usare i plugin di cache.

Per migliorare le prestazioni, ho creato gran parte del sito utilizzando i transitori (ad esempio la navigazione, le mappe di google con tutti gli indicatori ecc.) E ho lasciato il contenuto dinamico dinamico.

Il problema qui è se cambio qualcosa, devo cancellare manualmente il transitorio specifico per vedere il risultato corrente. Il sito mostra menu e googlemaps diversi quando inseriti da un canale diverso, quindi ho circa dieci transitori per ogni area.

Creeresti una funzione in cui li elimino tutti in una volta (con un elenco dei nomi del transitorio), o va bene semplicemente cancellare tutti i transitori sul sito?

Non è poi così urgente, ma per lo sviluppo futuro vorrei sapere se hai avuto problemi con cose del genere e come gestisci tutti i tuoi transitori.

Saluti, fischi


Risposte:


6

Per lo sviluppo, consiglierei di lavorare sempre con WP_DEBUGset to truee fare quanto segue:

$key = 'transient_key';
if( !WP_DEBUG && ( false !== ($transient = get_transient($key)) ){

   /* Generate transient manually */
   $expiration = 24*60*60;//How long to keep for
   set_transient($key,$transient, $expiration);
}

In generale, dovrebbe essere opportuno eliminare i transitori, in quanto non si dovrebbe mai supporre che siano presenti nel database.


grazie @stephen, ho usato questa soluzione in fase di sviluppo, ma l'ho cancellata in fase di refactoring prima di passare alla vita. non avresti dovuto farlo;) ma nella tua esperienza, hai mai avuto problemi con la cancellazione manuale dei transitori?
fischi,

:) grazie per le informazioni sull'eliminazione dei transitori. ho pensato a qualcosa del genere, ma non ne ero del tutto sicuro.
fischi,

1
No, non ho mai avuto problemi a eliminare manualmente i transitori, tranne che per stufarmi e usare questo approccio :).
Stephen Harris,

1

Dovresti collegare le varie azioni che vengono eseguite quando le cose vengono aggiornate per cancellare e aggiornare i transitori. Ad esempio, quando il menu di navigazione viene aggiornato, l' wp_update_nav_menuazione viene attivata, agganciare una funzione a quella per aggiornare il transiente del menu di navigazione.


grazie @Milo, questa è una buona idea, ma non utilizzabile per me, poiché i transitori non influiscono solo sul menu. c'è un sacco di contenuti (punti di interesse su una mappa) aggiunti continuamente, e il sito è piuttosto occupato - quindi wp_update_nav_menu
creo

quello era solo un esempio, aggiorna ogni transitorio su qualunque azione sia legata
Milo,

si, sei proprio qui. non tutti i miei transienti sono legati a un'azione, però. alcuni di essi vengono utilizzati direttamente nei file modello (quando creo elenchi di grandi dimensioni) e contengono l'html effettivo, ciascuno della durata di un'ora. per i transitori che hanno una lunga vita, come quello che hai menzionato, io uso il tuo metodo :)
fischi,

1

Non sarebbe meglio fare il tuo sviluppo in un ambiente di sviluppo in modo che la necessità di vedere le tue modifiche mentre vengono apportate non abbia un impatto sul sito pubblico?

Utilizzando questo approccio è quindi possibile distribuire / promuovere la produzione e svuotare i transitori a un basso tempo di traffico con un impatto minimo sulle prestazioni del sito e sull'esperienza dell'utente.


sì, ovviamente sarebbe meglio - ma ho iniziato il progetto poche settimane dopo aver iniziato la mia attività, e da allora ho imparato molto. sto solo costruendo la mia infrastruttura completa - e sto pianificando di sviluppare temi e plugin personalizzati sul mio server, e non appena hanno finito di distribuire un aggiornamento ai siti con la funzione di aggiornamento di wordpress. questo non era il migliore dei metodi che ho scelto lì, lo ammetto.
fischi,

Penso che ce ne siano tutti been there and done thatcontemporaneamente.
Steve,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.