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

Juventus

Jornal cita 'intocáveis' de Juventus e Milan para 2022 com dois brasileiros

Arthur, durante partida entre Juventus e Benevento - Filippo Alfero - Juventus FC/Juventus FC via Getty Images
Arthur, durante partida entre Juventus e Benevento Imagem: Filippo Alfero - Juventus FC/Juventus FC via Getty Images

Colaboração para o UOL, em São Paulo (SP)

04/05/2021 14h19

Diante de temporadas decepcionantes, Juventus e Milan se preparam para fazer grandes mudanças no elenco, mesmo com menos dinheiro por conta da pandemia, as duas equipes devem negociar muitos jogadores e trazer algumas caras novas para a próxima temporada.

De acordo com a Gazzetta dello Sport, os dois clubes já sabem quais serão os esqueletos principais dos times e já definiram os jogadores que são "intocáveis". Na Juventus, a dupla brasileira Danilo e Arthur fica, assim como De Ligt e Chiesa, que têm futuros assegurados no time.

Nomes como: Alex Sandro, Dybala, Cristiano Ronaldo e veteranos como Chiellini e Bonucci não aparecem com grande prestígio no momento, já que a diretoria pretende renovar o elenco.

Pelo Milan, a situação é um pouco mais urgente, já que o time não tem sucesso relevante há alguns anos, ao contrário da Juventus, que monopolizou o Campeonato Italiano na última década. Mesmo assim, o Milan dá indícios de apostar no futuro, segundo a Gazzetta dello Sport.

Theo Hernandez, Frank Kessié, Calabria, Sandro Tonali e Zlatan Ibrahimovic tem futuro certo no Milan, enquanto isso, jogadores como o jovem capitão Gianluigi Donnarumma, Mandzukic, Çalhanoglu e Rebic não tem as suas permanências asseguradas.

Por sinal, os dois técnicos têm futuros incertos nos times, tanto Andrea Pirlo, na Juventus, como Stefano Pioli, no Milan, não sabem se vão continuar a comandar as equipes na próxima temporada.

Juventus e Milan se preparam para um clássico decisivo e direto no próximo domingo (09), já que ambos precisam de uma vaga para a Champions League e tem a mesma pontuação no campeonato.

Faltam quatro rodadas para o término do Campeonato Italiano e, tanto para Juve quanto para o Milan é muito importante assegurar uma vaga entre os quatro melhores times italianos, por mais que a missão seja complicada, já que a classificação está bem embolada.

Atalanta, Juventus e Milan estão com 69 pontos na segunda, terceira e quarta colocação respectivamente. O Napoli, com 67 pontos está em quinto, e Lazio, com 64, em sexto, ainda brigam por uma vaga na Champions League da próxima temporada também.

Juventus