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

Internacional

Coudet vê Inter mais forte do que no primeiro Gre-Nal: "Mais cômodos"

Eduardo Coudet crê em evolução do Internacional desde o primeiro clássico Gre-Nal - Ricardo Duarte/Inter
Eduardo Coudet crê em evolução do Internacional desde o primeiro clássico Gre-Nal Imagem: Ricardo Duarte/Inter

Marinho Saldanha

Do UOL, em Porto Alegre

11/03/2020 17h28

O Inter está mais forte do que no primeiro clássico do ano. Esta é a opinião do técnico Eduardo Coudet. Na véspera do primeiro clássico Gre-Nal da história válido pela Libertadores, o treinador explicou que entende que sua equipe está em outro estágio de preparação.

"Todos os clássicos têm histórias diferentes e tentamos escrever com um final feliz. Chegamos num momento em que nos sentimos melhor com a ideia, é a sensação que tenho de treinamentos e jogos. E cada vez os jogadores estão se sentindo mais cômodos e é um processo. Leva tempo para mudar uma ideia, uma forma. Nós procuramos diminuir o processo de adaptação. No início era a forma que tínhamos para jogar. Nós, treinadores, tentamos acelerar os processos mas temos que ter um tempo lógico", disse o técnico.

A exemplo do que fez após o último jogo do Colorado, o treinador elogiou o rival, seu treinador, e disse que a responsabilidade gremista é maior por conta do estádio.

"(O Grêmio) É um time que se faz forte na sua casa. E que seguramente vai querer ganhar, igual a nós. E que vai tentar ser protagonista com sua torcida. Nós tentaremos tratar de manter a ideia, a forma de jogar. E que vai tentar ser protagonista com sua torcida. Sempre, nestes jogos, a responsabilidade maior é que quem é local. Nós tentaremos de fazer um grande jogo, ser inteligentes, e seguramente tentaremos ganhar", comentou o treinador. "Teremos pela frente um ótimo time, com ótimo treinador", completou.

Em comparação ao primeiro Gre-Nal do ano, Coudet vê o time melhor. Mas também crê que sua equipe já foi melhor que o rival no duelo anterior.

"Eles tiveram um par de ocasiões não foram muitas. Tiveram duas finalizações em impedimento, que também é mérito da nossa defesa", afirmou. "Estivemos frente a frente com um time de qualidade. Eles têm grandes jogadores e as individualidades fazem a diferença. Mas me parece que no primeiro jogo, fizemos as coisas melhor, mas saímos com as mãos vaias. Se eu negociaria isso? Seguramente por ser um clássico, eles saíram mais felizes que nós. Mas buscamos crescer com uma ideia e tentaremos vencer", explicou.

Grêmio e Inter jogam às 21h (de Brasília) na Arena do Grêmio pela segunda rodada do grupo E da Libertadores.

Internacional