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

Reinaldo faz dois, São Paulo vence e entra no G8; Juventude pode cair hoje

Reinaldo, do São Paulo, comemora gol contra o Juventude pelo Brasileirão - Luiz Erbes/AGIF
Reinaldo, do São Paulo, comemora gol contra o Juventude pelo Brasileirão Imagem: Luiz Erbes/AGIF

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

23/10/2022 17h52

O São Paulo contou com a estrela de Reinaldo, autor de dois gols, para vencer o Juventude por 2 a 1 na tarde de hoje (23), entrar de vez na briga pela vaga na próxima Libertadores e colocar o time gaúcho mais perto da queda para a Série B. Capixaba descontou para os donos da casa.

A vitória leva o Tricolor aos 47 pontos e à oitava posição, que deve valer uma vaga à competição continental no ano que vem. Com 21, o Ju está na lanterna e pode cair ainda na noite deste domingo, se Coritiba e Ceará vencerem suas partidas.

Os dois times voltam a campo na quinta-feira (27): o Tricolor recebe o Atlético-GO, às 19h (horário de Brasília), enquanto a equipe da serra gaúcha visita o Atlético-MG, às 19h30.

LIVE DO SÃO PAULO

Quem foi bem: Reinaldo

Decisivo, Reinaldo foi o responsável direto pelos três pontos do São Paulo no Alfredo Jaconi. Na primeira etapa, mostrou bom posicionamento para aparecer isolado na área e abrir o placar de cabeça. Na segunda, novamente bem colocado, se aproveitou de rebote para encher o pé e contar com a sorte - e o desvio de Paulo Henrique - para dar números à vitória tricolor. O camisa 6 soma agora oito gols na temporada.

Quem foi mal: Léo

Mal na marcação, o defensor são-paulino perdeu vários duelos contra Rafinha, três vezes, e Paulo Henrique. Por pouco não comprometeu o importante resultado do Tricolor.

São Paulo ocupa o ataque

O São Paulo pôs o time no campo de ataque desde o início da partida, e foi responsável pelas principais ações ofensivas, sobretudo em jogadas pelas laterais. Não por acaso os gols foram marcados pelo camisa 6 tricolor. Com a vantagem no placar, na etapa final, os comandados de Rogério ceni istraram o resultado. No fim do confronto, quase deu tempo para o terceiro, que seria um golaço: Galoppo recebeu cruzamento na área e acertou um belo voleio, muito bem defendido por Pegorari.

Juventude se fecha

Ciente de suas limitações, o Juventude dobrou as linhas no campo de defesa, se fechou e esperou as melhores oportunidades para contra-atacar com espaço ou pelas bolas paradas. Com a reação rápida ao primeiro gol dos visitantes, a estratégia até parecia dar certo, mas na etapa final o Papo diminuiu o ritmo e não conseguiu se recuperar e ofereceu pouco perigo para a meta de Felipe Alves.

De lateral para lateral

Os avanços pelos lados funcionaram tão bem para o Tricolor que foi dos laterais que saiu o primeiro gol do jogo: aos 35 minutos, Moreira avançou pela direita e fez um cruzamento aberto na grande área, onde Reinaldo apareceu livre para testar firme e abrir o placar. Outros duas chances de perigo na primeira etapa, ambas finalizadas por Calleri, saíram de lances similares.

Sem tempo para comemorar

Dois minutos depois do gol tricolor, após cruzamento pela direita, Élton, de costas para a área, fez um e preciso para Capixaba. O atacante dominou bem e finalizou no alto para vencer Felipe Alves e empatar.

Reinaldo devolve São Paulo à frente do placar

Na segunda etapa, a insistência são-paulina surtiu efeito: após cobrança de escanteio, Reinaldo aproveitou a sobra para chutar forte e colocar o time de Rogério Ceni mais uma vez à frente do placar.

Ju pode cair nesta rodada

Cada vez mais perto da queda para a Série B, o Juventude pode cair ainda hoje após a derrota em casa. Isso ocorrerá caso Ceará e Coritiba vençam seus jogos à noite.

FICHA TÉCNICA

JUVENTUDE 1 X 2 SÃO PAULO

Competição: Campeonato Brasileiro, 33ª rodada

Data e horário: 23 de outubro de 2022 (domingo), às 16h (de Brasília)

Local: Alfredo Jaconi, em Caxias do Sul (RS)

Árbitro: Paulo Roberto Alves Junior (PR)

Assistentes: Sidmar dos Santos Meurer (PR) e Jefferson Cleiton Piva da Silva (PR)

VAR: Carlos Eduardo Nunes Braga (RJ)

Cartões amarelos: Rodrigo Soares (JUV) e Vitor Mendes (JUV); Moreira (SAO) e Pablo Maia (SAO)

Gols: Reinaldo (SAO), aos 36 minutos, e Capixaba (JUV), aos 38 do 1º tempo; Reinaldo (SAO), aos 10 do 2º tempo

JUVENTUDE: Pegorari; Paulo Henrique, Thalisson, Vitor Mendes e Rodrigo Soares; Élton (Bruno Nazário), Jadson (Gabriel Tota), Chico (Jean Irmer), Capixaba (Ruan) e Rafinha (Óscar Ruiz); Isidro Pitta. Técnico: Lucas Zanella.

SÃO PAULO: Felipe Alves; Moreira (Galoppo), Luizão, Léo e Reinaldo (Welington); Rafinha, Pablo Maia, Rodrigo Nestor (Igor Gomes) e Patrick (Marcos Guilherme); Calleri e Bustos (Eder). Técnico: Rogério Ceni.