Si te dedicas al desarrollo de páginas web con WordPress o simplemente lo usas como herramienta para la gestión de contenidos de un portal, probablemente te habrás topado con el concepto de heartbeat, pero quizá no tengas muy claro de qué se trata. Por este motivo, me parece interesante tratar de explicar qué es y cómo modificarlo en caso de que lo necesites.
El Heartbeat API (o simplemente “heartbeat”) es un sistema de comunicación en segundo plano entre el navegador y el servidor. Este sistema permite que mientras estás trabajando se produzcan determinadas peticiones que hacen que la experiencia de usuario sea más agradable y añade un extra de comodidad.
Las peticiones se realizan mediante AJAX de manera asíncrona cada ciertos segundos mientras te encuentras en determinadas partes de la web, por defecto el rango va entre 15 y 120 segundos, según el lugar y proceso en cuestión. Esto permite por ejemplo que WordPress realice el autoguardado de las páginas mientras editas o que un artículo se bloquee si un usuario ya lo está editando, de modo que se evite sobrescribir cambios. Pero va más allá ya que puede hacer algo tan sencillo como mantener la sesión activa en el panel mientras estés dentro o ayudar a actualizar la información en tiempo real de tu maquetador visual favorito.
Realmente no hay limitaciones para hacer uso de este sistema, por eso además de usarlo el propio WordPress, cualquier programador podría incorporarlo en su plugin para hacer una tarea determinada. Se podría decir que es como una especie de cron pero para tareas repetitivas pequeñas y que se ejecuta a demanda del usuario.
No obstante, si bien heartbeat ha supuesto un salto en cuanto a comodidad, también puede generar algunos problemas. Y es que a fin de cuenta son peticiones que se hacen de manera continua al servidor y por tanto consumen recursos. En sitios con mucho tráfico puede ser perjudicial si la frecuencia es muy alta o se está abusando de su uso.
El modo más sencillo de controlar su frecuencia e implementación es a través de un plugin, si buscas en el directorio encontrarás varios que cumplen con este cometido. No obstante si eres desarrollador WordPress como es mi caso, podrías modificarlo desde el archivo de funciones o haciendo tu mismo un plugin. Si te animas a hacerlo tu mismo, podrías añadir a functions.php algo como:
add_filter('heartbeat_settings', function ($settings) {
// Ajusta a 80s en backend y frontend
$settings['interval'] = 80;
return $settings;
});
Con lo anterior ajustarías la frecuencia a 80 segundos de manera global tanto en la web pública como en el panel de control, por lo que se producirían menos ejecuciones de Heartbeat API.
Referencias:
- Heartbeat API (inglés) – WordPress Developer Resources






Deja una respuesta