JSFiddle - React, Tailwind, and code Playground
JavaScript
var app = {};
app.getTime = function()
{
// retornar em segundos
return new Date().getTime().toString().substring(0,10);
};
if( !sessionStorage['window']) sessionStorage['window'] = Math.floor(Math.random()*(9999999999999999-1111111111111111+1)+1111111111111111);
(app.fn = function()
{
// Se não tiver setado o localStorage['time'] a menos de 3 sec
// esta será a janela mestre.
if( !localStorage['window'] || parseInt(localStorage['time'])<(app.getTime()-3))
{
localStorage['window'] = sessionStorage['window'];
}
app.mestre = (sessionStorage['window'] == localStorage['window']);
if( app.mestre)
{
localStorage['time'] = app.getTime();
}
clearInterval(app.time);
app.time = setInterval(function(){ app.fn(); }, 1000);
})();
///////////////
// EXEMPLO... Só a janela mestre fará a contagem...
var cont = 1;
setInterval(function(){
if( app.mestre) document.body.innerHTML += cont++ + ' ';
}, 1000);