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);