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

Bahia

Dado Cavalcanti roda elenco do Bahia e exalta goleada na Sul-Americana

Dado Cavalcanti, técnico do Bahia, e Thonny Anderson, um dos destaques do time na Sul-Americana - Felipe Oliveira/Bahia
Dado Cavalcanti, técnico do Bahia, e Thonny Anderson, um dos destaques do time na Sul-Americana Imagem: Felipe Oliveira/Bahia

Bruno Fernandes e Josué Seixas

Colaboração para o UOL, em Maceió

28/04/2021 09h06

A goleada do Bahia sobre o Guabirá, pela segunda rodada da fase de grupos da Copa Sul-Americana, foi mais uma vitória por placar elástico do time na temporada. Na Copa do Nordeste, o Esquadrão tem o melhor ataque, e as maiores vítimas foram Sport, Altos e CRB. Na Copa do Brasil, o roteiro foi o mesmo contra Campinense e Manaus. A sequência de jogos levou o técnico Dado Cavalcanti a entrar sem algumas peças consideradas titulares na competição continental, como Nino Paraíba, Conti, Rodriguinho e Gilberto.

"Importante o triunfo, importante jogar bem. O jogo se tornou fácil pela nossa dinâmica, intensidade. Entendo que essa foi a oportunidade de manter intensidade no jogo. Essa oxigenação, com a entrada de outros atletas, trouxe esse nível a mais de intensidade. Jogadores motivados, alguns desses com a sede de demonstrar potencial. Demonstrou também que o Bahia tem um grupo forte. Tem um elenco, que será utilizado, porque no Bahia se acostumou a fazer muitos jogos no ano. Existem lesões, suspensões, trocas. Hoje foi prova da força desse grupo", comentou Dado.

Segundo o técnico, nenhum jogador foi poupado. Ele diz que as alterações foram pela condição física dos atletas, que não teriam condições de jogar a partida de ontem. No fim de semana, o Bahia se classificou para a final da Copa do Nordeste ao vencer o Fortaleza nos pênaltis. No sábado, enfrenta o Ceará na ida da decisão.

"Não houve ninguém poupado. Os jogadores que não estiveram aqui hoje não tiveram condições de jogar. Alguns vieram à base do sacrifício, tamanha importância da Sul-Americana. Quem não esteve em campo hoje não tinha condição de jogar. Os que estiveram aptos estavam 100%, contribuíram para que a intensidade do jogo fosse alta, placar elástico, porque se mantivéssemos uma margem maior de jogadores com menos intensidade teríamos mais dificuldade, talvez o jogo não seria assim", avaliou o técnico.

Os destaques da partida foram justamente jogadores que aproveitaram a oportunidade, como Alesson (dois gols e uma assistência), Marcelo Ryan (dois gols e uma assistência), Thonny Anderson (uma assistência) e Renan Guedes.

Marcelo Ryan tem 18 anos e fez parte do elenco de transição do Esquadrão, que disputa o Campeonato Baiano, enquanto o elenco principal se concentra na Copa Sul-Americana, Copa do Nordeste e Copa do Brasil.

"Sobre os meninos, hoje estavam relacionados dez atletas que tiveram participação, em algum momento, no time de transição. Alguns mais, outros menos. Alguns até da base. Esse trabalho é importante demais para a instituição. Destaco o jogo que Renan Guedes fez, muito seguro, consistente, ofensivamente foi muito bem. Achou vários es, defensivamente muito seguro. Marcelo entrou e fez dois gols", disse o treinador.

Bahia