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

Presidente do Sport confirma contratação de Dorival Jr; treinador nega

Dorival Júnior, treinador de futebol - GettyImages
Dorival Júnior, treinador de futebol Imagem: GettyImages

Bruno Fernandes e Josué Seixas

Colaboração para o UOL, em Maceió

05/04/2021 18h01

Após demitir o técnico Jair Ventura na manhã desta segunda-feira (5), o presidente do Sport, Milton Bivar, confirmou, horas depois, a contratação do técnico Dorival Júnior para comandar a equipe na continuidade da Copa do Nordeste, Campeonato Pernambucano e Série A do Brasileirão. O treinador, no entanto, negou que tenha fechado com o clube pernambucano. "Só tive um contato, nada além disso", disse o técnico em uma mensagem sucinta ao UOL.

O presidente do clube, Milton Bivar, por outro lado, informou à reportagem que apenas aguarda a negociação de alguns valores para anunciar o técnico oficialmente. "Procuramos o Dorival, ele aceitou treinar a equipe, mas ainda falta negociarmos alguns valores para anunciarmos ele oficialmente, mas já podemos dizer que ele será o treinador sim", informou o cartola.

O comando da equipe ficará, de forma interina, nas mãos de César Lucena, auxiliar efetivo do Leão até que o novo treinador seja oficialmente anunciado.

Se confirmada a contratação, Dorival volta a comandar o Sport após 15 anos da sua primeira agem pelo clube, em 2006. Agora, assume uma equipe que nada ganhou na atual temporada.

Na última agem pelo Sport, Dorival venceu o estadual e seguiu até a Série B, quando foi demitido após uma derrota para o Brasiliense por 2 a 0, fora de casa, pela 17ª rodada da competição.

O último trabalho de Dorival Júnior foi no Athletico Paranaense. Ele foi deixou o clube em agosto de 2020, após quatro derrotas seguidas no Campeonato Brasileiro. Com currículo recheado, o treinador também tem trabalhos no Flamengo, Santos, Internacional, Atlético-MG, Cruzeiro, Vasco, Fluminense, Palmeiras e São Paulo, entre outros.

Demissão de Jair Ventura

Jair Ventura foi demitido após uma série de péssimos resultados no Leão. Sua agem 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.