L'API Heartbeat di WordPress funziona come il polso del tuo sito web: invia un piccolo ping "Sono attivo" dal tuo browser al tuo server ogni pochi secondi. Questo ciclo automatico di richiesta/risposta sincronizza i dati, i post e la dashboard del tuo sito, fornendo aggiornamenti in tempo reale e funzionalità essenziali per editor, plugin e amministratori.
In questo articolo del glossario scoprirai esattamente come funziona l'API WordPress Heartbeat, perché è importante e come monitorarla, controllarla o disattivarla se crea un'elevata richiesta di CPU sul tuo hosting.
Perché l'API Heartbeat di WordPress è importante?
L'API Heartbeat è alla base di molte delle funzionalità più intuitive di WordPress, mantenendo il browser e il server in costante comunicazione. Senza di essa, perderesti i pratici salvataggi automatici, i blocchi collaborativi dei post e gli aggiornamenti in tempo reale della dashboard.
- Mantiene sicuro il tuo editor di post: quando scrivi una bozza o modifichi un post nell'editor di WordPress , Heartbeat salva automaticamente le modifiche ogni 15-60 secondi, così non perderai mai il tuo lavoro se il tuo browser o la tua connessione si interrompono.
- Blocco utente e notifiche: se due autori provano a modificare lo stesso post contemporaneamente, Heartbeat invia notifiche ("Un membro del tuo team sta modificando questo post") e applica un meccanismo di blocco per evitare conflitti di contenuto.
- Widget della dashboard in tempo reale: i plugin di e-commerce come WooCommerce utilizzano l'API per aggiornare i dati di vendita nella dashboard senza dover ricaricare l'intera pagina.
- Avvisi di timeout della sessione: Heartbeat può avvisarti se la tua sessione di accesso è scaduta, invitandoti ad accedere nuovamente prima di perdere le modifiche non salvate.
Come funziona l'API Heartbeat: le basi
Heartbeat funziona tramite piccole chiamate AJAX al server, consentendo a WordPress di coordinare i dati senza dover aggiornare completamente la pagina. Questi ping frequenti ottimizzano la funzionalità e la sicurezza , garantendo che gli editor visualizzino informazioni aggiornate e che le sessioni rimangano valide.
- Il browser invia admin-ajax.php Richiesta: Con ogni battito cardiaco, il tuo browser invia una piccola chiamata AJAX a /wp-admin/admin-ajax.php.
- Richiesta dei processi del server: WordPress esegue tutte le funzioni agganciate, recupera i nuovi dati e li invia come risposta JSON.
- Il browser riceve e agisce: gli eventi JavaScript del browser catturano la risposta, aggiornano l'interfaccia utente (ad esempio, salvataggio automatico, aggiornamento del widget) e si preparano per l'intervallo successivo.
js
// Esempio: ascolta il prossimo battito cardiaco nel frontend
jQuery(document).on('heartbeat-tick', function(event, data) {
console.log('Risposta heartbeat ricevuta:', data);
});
- Intervallo predefinito : schermata dell'editor (15 secondi) e dashboard e altre pagine di amministrazione (60 secondi).
Hook principali ed esempi di codice
Gli sviluppatori sfruttano gli hook integrati di Heartbeat per aggiungere funzionalità personalizzate o modificarne il comportamento. È possibile personalizzare l'API per scambiare i dati necessari sfruttando questi eventi JavaScript e PHP.
Hook JavaScript
Di seguito sono riportati due hook JS principali a cui è possibile collegarsi per il controllo front-end:
- invio battito cardiaco: Allega dati personalizzati prima di ogni richiesta.
- battito cardiaco-tic: Agire sui dati ricevuti una volta completata la richiesta.
js
// Allega informazioni extra su ogni evento heartbeat-send
jQuery(document).on('heartbeat-send', function(e, data) {
data.customValue = jQuery('#my-field').val();
});
Hook PHP
Sul lato server, questi hook consentono di modificare o reagire alle chiamate Heartbeat:
- battito_cardiaco_invia: Modificare i dati restituiti dal server.
- battito cardiaco_ricevuto: Intervieni quando il server riceve un tick.
php
add_filter('heartbeat_send', 'my_heartbeat_send', 10, 2);
function my_heartbeat_send($response, $screen_id) {
if ($screen_id === 'post') {
$response['server_time'] = time();
}
return $response;
}
Casi di utilizzo comuni dell'API Heartbeat di WordPress
Le funzionalità in tempo reale di Heartbeat sono alla base di molte funzionalità quotidiane di WordPress. La sincronizzazione tra server e browser garantisce che dashboard ed editor rimangano aggiornati senza clic manuali o ricaricamenti completi.
- Salvataggio automatico e revisioni: Heartbeat funziona senza problemi nell'editor dei post, creando backup ogni 15 secondi in modo da poter recuperare i contenuti persi.
- Dati di vendita in tempo reale: gli sviluppatori di plugin per l'e-commerce utilizzano Heartbeat per recuperare statistiche di vendita aggiornate e visualizzarle all'istante.
- Avvisi di scadenza della sessione: quando la sessione di accesso sta per scadere, Heartbeat mostra un avviso: "Clicca qui per rimanere connesso".
- Avvisi di collaborazione: vedrai chi sta modificando quale post nei siti multiautore, evitando conflitti di sovrascrittura.
Considerazioni sulle prestazioni e utilizzo elevato della CPU
Sebbene indispensabile per gli aggiornamenti in tempo reale, Heartbeat può diventare un pesante consumatore di CPU su siti con traffico elevato. Ogni frequente richiesta AJAX ad admin-ajax.php consuma tempo di elaborazione e memoria, il che può spingere gli account di hosting condiviso oltre i limiti di risorse.
- Carico elevato della CPU: le frequenti chiamate API Heartbeat possono aumentare significativamente l'utilizzo della CPU del server, soprattutto nei piani di hosting condiviso, perché ogni tick richiede a PHP di elaborare una richiesta AJAX
- Risposta più lenta della pagina: man mano che il server gestisce più spesso queste richieste, i caricamenti delle pagine front-end e le interazioni tra l'amministratore e la dashboard potrebbero diventare notevolmente più lenti.
- Rischio di sospensione: Se il volume di admin-ajax.php Se le richieste spingono il tuo sito oltre i limiti della CPU del tuo host, il tuo account potrebbe essere limitato o sospeso finché l'utilizzo non tornerà a livelli accettabili.
Come monitorare il traffico Heartbeat?
L'osservazione dell'attività cardiaca può aiutare a diagnosticare precocemente i colli di bottiglia nelle prestazioni. Utilizza i log del server e gli strumenti lato client per monitorare la frequenza delle richieste e i tempi di risposta.
- Registri e statistiche del server: Controlla i picchi di utilizzo della CPU nel cPanel o nella dashboard del tuo hosting, concentrandoti su Voci /wp-admin/admin-ajax.php.
- Strumenti di sviluppo del browser: in Chrome o Firefox Strumenti di sviluppo → scheda Rete → filtro “admin-ajax.php” → osservare la frequenza dei tick e il tempo di risposta.
- Soluzioni plugin: installa plugin per le prestazioni (ad esempio Query Monitor) per visualizzare le chiamate Heartbeat, l'utilizzo della memoria e il tempo di esecuzione direttamente nella dashboard di amministrazione.
Controllo e limitazione dell'API Heartbeat
Se il ritmo predefinito di Heartbeat sovraccarica il server, è possibile rallentarlo o disattivarlo selettivamente. In questo modo è possibile bilanciare le funzionalità in tempo reale con prestazioni ottimali e controllo delle risorse.
- Tramite plugin: installa Heartbeat Control o usa le impostazioni integrate di WP Rocket
- Via Codice
php
// Riduci la frequenza Heartbeat a una volta ogni 60 secondi
add_filter('heartbeat_settings', function($settings) {
$settings['interval'] = 60;
return $settings;
});
// Disabilita completamente sul front-end
add_action('init', function() {
if (!is_admin()) wp_deregister_script('heartbeat');
}, 1);
Rischi della disabilitazione dell'API Heartbeat
Disattivare Heartbeat può ridurre il carico sulla CPU, ma comporta la perdita di diverse funzionalità chiave. Prima di disattivarlo in tutto il sito, è importante comprendere i compromessi in termini di esperienza utente e sicurezza.
- Nessun salvataggio automatico nell'editor classico → è necessario fare clic manualmente su "Salva bozza" per ogni modifica.
- Potenziale perdita di dati se la connessione Internet si interrompe durante la pubblicazione/aggiornamento.
- I widget e i plugin della dashboard che si basano su Heartbeat smetteranno di funzionare, riducendo i report e le funzionalità in tempo reale.
Buone pratiche e risoluzione dei problemi
Invece di eliminare completamente Heartbeat, è più saggio ottimizzarne il comportamento. Limitando o registrando selettivamente Heartbeat, se ne preservano i benefici, preservando al contempo l'integrità del server.
- Accelera, non uccidere : invece di disattivarlo completamente, aumenta l'intervallo da 15 a 30 o 60 secondi.
- Test in staging : per prima cosa, applica modifiche di intervallo o la cancellazione della registrazione in un ambiente di staging per individuare i problemi.
- Combina con la memorizzazione nella cache : sfrutta la memorizzazione nella cache di oggetti o pagine per compensare qualsiasi carico aggiuntivo del server da Heartbeat.
- Abilita la registrazione: Agganciare battito cardiaco_ricevuto per registrare i tick e risolvere i comportamenti imprevisti.
Pensiero finale
L'API Heartbeat di WordPress mantiene il tuo sito attivo e sincronizzato. Salva automaticamente le bozze, mostra dati in tempo reale e previene conflitti di modifica. Troppe richieste possono aumentare l'utilizzo della CPU. Puoi rallentarla o disattivarla dove necessario. Testa prima le modifiche in un sito di staging. Con il giusto equilibrio, Heartbeat aumenta le funzionalità senza compromettere le prestazioni.
Per ulteriori termini WordPress e spiegazioni approfondite, esplora il Glossario di Seahawk Media .