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

Jorge Jesus transforma Arrascaeta de substituível a nome mais letal do BR

31/10/2019 06h30

Em 14 de julho, quando estreou no comando do Flamengo no Brasileirão, Jorge Jesus escalou o meia Arrascaeta entre os titulares. A partir daquele momento, o uruguaio transformou-se nas mãos do português. De um reserva substituível, o camisa 14 tornou-se titular absoluto e o nome mais decisivo - com assistências e gols - a favor do Rubro-Negro, que, hoje, defende a liderança do Campeonato Brasileiro diante do Goiás, às 20h, no Serra Dourada, em Goiânia.

O Esmeraidino, no Maracanã, foi a vítima da maior atuação do jogador com a camisa do Flamengo: foram nada menos que três gols e duas assistências. O início de uma fase avassaladora do camisa 14 uruguaio pela equipe da Gávea.

Com Abel Braga, Arrascaeta atuou em três rodadas do Brasileirão como titular, e foi sacado até os 36 minutos da segunda etapa em todas. No total, foram quatro jogos do meia na competição antes da contratação de Jorge Jesus, com um gol e duas assistências do camisa 14 - sendo estas duas contra o Fortaleza, quando o Rubro-Negro tinha o auxiliar Marcelo Salles como técnico interino.

De lá para cá, foram mais nove gols e seis assistências de Arrascaeta atuando no time do Mister. Este desempenho em 11 jogos faz do uruguaio o jogador mais decisivo do Brasileirão visto que é quem menos precisa de minutos para participar diretamente de um gol, de acordo com os números do site Footstats.

Maior investimento da história do clube da Gávea, Arrascaeta não teve sequência no primeiro semestre. O cenário mudou completamente com o treinador português. Levando em consideração apenas o Brasileirão, o meia atuou por mais de 80 minutos em nove das 11 partidas que fez como titular. Entre a 13ª e a 22ª rodada, só não esteve entre os 11 iniciais em um confronto - contra o Avaí, na 18ª rodada, quando esteve a serviço da seleção do Uruguai.

Dribles, finalizações, desarmes, assistências para finalizações... A participação de Arrascaeta, como um todo, cresceu sob o comando de Jorge Jesus e os seus números poderiam ser ainda mais expressivos se não tivesse sofrido lesão e operado o joelho esquerdo, o que o afastou dos jogos entre 2 e 23 de outubro.

A recuperação do atleta foi rápida e, na última semana, mostrou estar apto a ajudar o Flamengo na reta final do Brasileirão. Se os treinos fechados mantém as dúvidas quanto ao time de Jorge Jesus a cada rodada, a certeza é de que o meia só não será titular contra o Goiás por uma questão que não seja a técnica.