;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Sport

Sport demite Jair Ventura após vexame na Copa do Nordeste

Treinador chegou ao clube em agosto de 2020 e havia renovado contrato até o fim da atual temporada - Kely Pereira/AGIF
Treinador chegou ao clube em agosto de 2020 e havia renovado contrato até o fim da atual temporada Imagem: Kely Pereira/AGIF

Do UOL, em São Paulo e Maceió

05/04/2021 08h59

Jair Ventura não é mais o técnico do Sport. Depois da goleada sofrida para o Ceará por 4 a 0 neste fim de semana pela Copa do Nordeste - que eliminou o clube do torneio -, a diretoria da equipe pernambucana decidiu demitir o treinador de 42 anos do cargo.

A agem de Jair pelo Sport foi iniciada em agosto do ano ado, quando ele foi contratado para livrar o time do rebaixamento do Brasileirão. Após cumprir a missão, o técnico chegou a renovar seu contrato até o fim deste ano.

Jair Ventura deixa o comando do Leão com 39% de aproveitamento em 40 partidas disputadas ao todo. Foram 34 gols marcados e 54 sofridos.

Na atual temporada, o Sport venceu três partidas, empatou outras três e perdeu seis em 12 jogos. Pela Copa do Nordeste, somou apenas cinco pontos em 21 disputados e sofreu oito gols de times da Série A. A equipe também foi eliminada da Copa do Brasil ainda na primeira fase, pelo Juazeirense.

"Jair Ventura deixa o comando rubro-negro. O Clube agradece todos os serviços prestados pelo técnico, na campanha de permanência da série A, e deseja sorte em sua caminhada!", publicou o Sport no Twitter.

Treinador cita falta de torcida e agradece

Em seu Instagram, Jair Ventura publicou uma carta aos torcedores do Sport agradecendo pelo tempo que ou comandando o clube.

No texto, o treinador disse que "a falta do torcedor na Ilha com certeza foi bem sentida" durante o trabalho e agradeceu também aos dirigentes pela oportunidade.

Leia a carta de Jair Ventura:

Quero começar agradecendo pelos pouco mais de sete meses de um convívio muito legal e muito saudável.

Quando fui convidado para dirigir o Sport algumas pessoas me falaram que era um desafio muito difícil, a situação era delicada e eu só posso dizer que esse foi um grande período em Recife, valeu todo o trabalho.

A situação da pandemia era sim muito complicada, a falta do torcedor na Ilha com certeza foi bem sentida, mas o torcedor do Sport se fez presente de outras formas, deu seu apoio com criatividade e paixão.

Vivi e vi muitos gestos de extremo carinho comigo e minha equipe: tatuagem com meu rosto, as manifestações pelas redes sociais e muitos, mas muitos gestos de enorme cumplicidade com nosso trabalho.

Valeu torcedor do Sport por cada momento, vou levar todas essas lembranças para sempre.

Quero agradecer pelo empenho dos atletas, a vontade de colaboração de todos os funcionários do Clube e também aos dirigentes, aqui fiz muitos amigos.

Desejo que o Sport faça uma temporada muito positiva e que o Leão da Ilha possa viver grandes momentos ao longo do ano.

Obrigado pela dedicação de todos, permanecer na primeira divisão do Campeonato Brasileiro era muito importante para as pretensões do Sport e a missão foi cumprida.

Obrigado.
Jair Ventura

Sport