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

Paulista - 2023

Palmeiras confirma favoritismo e vai para 4ª final consecutiva do Paulistão

Stefanie Ramos e Eduardo Nunes

Do UOL, em São Paulo

19/03/2023 17h55

O Palmeiras venceu o Ituano por 1 a 0 na tarde de hoje (19), no Allianz Parque, em partida válida pela semifinal do Campeonato Paulista. O gol do confronto foi marcado pelo zagueiro Murilo.

Com o resultado, os comandados de Abel Ferreira estão na final do Paulistão. Essa vai ser a quarta decisão consecutiva da equipe alviverde na competição estadual, tendo vencido em 2020 e 2022.

O treinador português chega a sua 11ª final com o Palmeiras — com seis títulos e quatro vices —, se isolando na ponta do ranking do Verdão. Antes, Abel estava empatado com Felipão.

Agora, o Palmeiras aguarda a partida entre Água Santa e Red Bull Bragantino — amanhã (20), às 21h — para saber quem irá enfrentar na grande decisão.

O Verdão vai disputar o segundo jogo da final em sua casa. Isso porque teve a melhor campanha durante toda a competição e terá o apoio de sua torcida na partida que encerra o Paulistão.

Como foi o jogo

O confronto foi de muita intensidade do lado alviverde. Apesar do resultado, o grande destaque da partida foi o goleiro do Galo de Itu, que fez grandes defesas durante todo o confronto e evitou um placar elástico.

O primeiro tempo foi de superioridade do Palmeiras. Os donos da casa pressionaram desde o minutos iniciais, sem dar muitas chances do Ituano o jogar. No entanto, nas suas melhores chances, parou em Jefferson.

A segunda etapa seguiu com a imposição palmeirense. Assim como no primeiro tempo, a equipe alviverde seguiu comandando o jogo. Após muitas tentativas, Murilo conseguiu fazer o gol da classificação para a final.

Gol e lances importantes

Jefferson salvou! Dudu cruzou em direção ao meio da área. Breno Lopes pegou de primeira e obrigou o goleiro do Ituano a fazer ótima defesa no reflexo.

Mais uma vez, Jefferson! Raphael Veiga saiu da marcação pelo lado direito e arriscou um belo chute de fora da área. O goleiro do Ituano fez grande defesa no canto esquerdo e evitou o gol palmeirense.

Goleiro do Ituano bem de novo! Assim como no primeiro tempo, Jefferson seguiu se destacando. Após cruzamento da esquerda, Gómez tentou cabecear. No rebote, Gabriel Menino bateu forte de fora da área, mas arqueiro fez grande defesa de joelho depois de um desvio no meio do caminho.

1 a 0. Murilo abriu o placar! Raphael Veiga cobrou uma falta em direção à área. Gustavo Gómez cabeceou para mais uma ótima defesa de Jefferson. Na sequência, a bola ficou viva na pequena área e Murilo pegou a sobra e testou para o fundo da rede.

Gol do Murilo - Palmeiras 1 x 0 Ituano

Jefferson deu o nome! Zé Rafael disputou no meio de campo e ganhou divididas em sequência. Veiga ficou com a bola e abriu para Piquerez, que bateu cruzado. O goleiro do Ituano salvou mais uma.

Ficha técnica:

PALMEIRAS 1 x 0 ITUANO

Competição: semifinal do Campeonato Paulista
Data e horário: 19 de março de 2023, às 16h (de Brasília)
Local: Allianz Parque, em São Paulo
Árbitro: Flavio Rodrigues
Público: 40.664
Renda: R$ 3.148.583,33
Cartões amarelos: Murilo (PAL) e Claudinho (ITU)
Gol: Murilo (13' - 2ºT)
PALMEIRAS: Weverton; Marcos Rocha, Gustavo Gómez, Murilo e Piquerez; Zé Rafael, Gabriel Menino (Fabinho), Raphael Veiga (Jailson) e Bruno Tabata (Breno Lopes); Dudu (Mayke) e Rony (Rafael Navarro). Técnico: Abel Ferreira
ITUANO: Jefferson Paulino; Raí Ramos, Claudinho, Bernardo e Iury; Lucas Siqueira (Nascimento), José Aldo (Rafael Carvalheira) e Eduardo Person; Gabriel Barros (Hélio), Paulo Victor (Felipe Saraiva) e Quirino (Rafael Silva). Técnico: Gilmar Dal Pozzo