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

Brasileirão - 2022

São Paulo bate Goiás, mas fica sem vaga na Libertadores por revés do Santos

Colaboração para o UOL, em São Paulo

13/11/2022 18h00

O São Paulo não teve dificuldades para bater o Goiás por 4 a 0 hoje (13), na Serrinha. Os visitantes controlaram o confronto da 38ª e última rodada do Campeonato Brasileiro do começo ao fim e, com tranquilidade, construíram a vantagem com os gols de Galoppo, Luciano, Marcos Guilherme e Juan.

Apesar do resultado, o São Paulo ficou sem a sonhada vaga na Libertadores. Com 54 pontos, o time terminou na nona colocação e garante, ao menos, a vaga na Sul-Americana e a entrada direta já na terceira fase da Copa do Brasil. No início da segunda etapa, o Tricolor chegou a ocupar o oitavo lugar, mas o Fortaleza, que empatava com o Santos, venceu por 2 a 0 e saltou para a oitava posição. O Goiás, com 46 pontos, fica em 13º.

O Tricolor dominou a primeira etapa e conseguiu abrir o placar aos 19 minutos, na cabeçada de Galoppo. Os mandantes foram dominados e chegaram com perigo apenas uma vez, com Vinícius. O Alviverde voltou um pouco melhor do intervalo, mas a superioridade do clube paulista rapidamente voltou a aparecer. Aos 25 minutos da etapa final, Calleri deixou Luciano de frente para o gol para ampliar o resultado. Marcos Guilherme anotou o terceiro aos 31 e, já nos acréscimos, Juan deu números finais ao duelo.

Melhor do jogo: Luciano

O atacante se movimentou, brigou com a marcação, procurou a bola, se apresentou como opção. Ativo durante todo tempo que esteve em campo, perdeu uma boa chance na primeira etapa, contudo só deixou sua marca na segunda etapa.

Pior do jogo: Diego

O jogador praticamente não tocou na bola nos 45 minutos iniciais. Sem ajudar na criação da equipe, saiu de campo no intervalo.

O jogo do Goiás: Recuado e sem força

Sem poder contar com seu principal jogador, já que Pedro Raul sentiu uma lesão minutos antes de a bola rolar, o Esmeraldino perdeu muita força no ataque. Mesmo atrás do placar desde os 19 minutos do primeiro tempo, o time continuou adotando uma postura mais defensiva e tentando explorar os contra-ataques.

O jogo do São Paulo: Domínio tranquilo

Superior, o Tricolor controlou bem a partida do começo ao fim, mesmo sem conseguir imprimir um ritmo mais intenso com a bola rolando. A linha de quatro funcionou bem na defesa e deixou poucos espaços ao adversário.

Arbitragem não tem problemas

Goiás e São Paulo se preocuparam em jogar futebol e não deram muito trabalho ao árbitro Marcelo de Lima Henrique. O juiz controlou o embate com tranquilidade e sem nenhum grande lance polêmico.

Surpresa na escalação, Galoppo desencanta

O meia de 23 anos chegou ao São Paulo em julho e, enfim, conseguiu marcar seu primeiro gol pelo Tricolor. Novidade na escalação de Rogério Ceni, o argentino não se firmou na temporada, mas ganhou a confiança do treinador pelo bom rendimento nos treinos para ser titular na despedida da temporada.

São Paulo amplia sem fazer muito esforço

Depois de um bom começo do Goiás na segunda etapa, o São Paulo retomou o domínio e conseguiu ampliar a vantagem sem fazer muito esforço.

Calleri recebeu de Léo pelo meio e rapidamente acionou Luciano, que ficou de frente para Tadeu e tirou do goleiro para marcar o segundo aos 25'.

Seis minutos depois, Marcos Guilherme entrou sozinho na área, se enrolou e ela ficou para Talles, que devolveu para o camisa 95. Na segunda oportunidade, ele bateu firme para balançar a rede.

Já nos acréscimos, Juan recebeu de Talles em velocidade e avançou para deixar o dele e a vitória se transformar em goleada.

Clima quente no Tricolor

Durante a pausa para a hidratação no primeiro tempo, Calleri não estava satisfeito com o rendimento do time. Mesmo com a vantagem no marcador, o centroavante discutiu com Welington.

FICHA TÉCNICA:

GOIÁS 0 x 4 SÃO PAULO
Competição:
Série A do Campeonato Brasileiro - 38ª rodada
Data: 13 de novembro de 2022, domingo
Horário: 16h (de Brasília)
Local: estádio da Serrinha, em Goiânia (GO)
Árbitro: Marcelo de Lima Henrique (CE)
Assistentes: Alessandro Alvaro Rocha de Matos (FIFA/BA) e Luanderson Lima dos Santos (BA)
VAR: Wagner Reway (PB)
Gols: Galoppo, aos 19'/1ºT (SPA); Luciano, aos 25'/2ºT; Marcos Guilherme, aos 31'/2ºT (SPA), Juan, aos 45'/2ºT (SPA).
Cartões amarelos: Maguinho, Auremir (GOI); (SPA)

Goiás: Tadeu; Maguinho, Lucas Halter, Reynaldo e Hugo (Henrique Lordelo); Auremir (Renato Junior), Matheus Sales (Danilo Barcelos) e Marquinhos Gabriel (Nathan Melo), Vinícius, Diego (Douglas Silva) e Nicolas. Técnico: Jair Ventura.

São Paulo: Felipe Alves; Rafinha, Ferraresi, Léo e Welington (Reinaldo); Pablo Maia, Rodrigo Nestor (Talles), Galoppo (Marcos Guilherme) e Igor Gomes; Luciano (Juan) e Calleri. Técnico: Rogério Ceni.