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

Boschilia supera polêmica, renasce com Medina e recupera espaço no Inter

Boschilia, do Inter, durante partida contra o Juventude, no estádio Alfredo Jaconi, pelo Gauchão 2022 - Luiz Erbes/Luiz Erbes/AGIF
Boschilia, do Inter, durante partida contra o Juventude, no estádio Alfredo Jaconi, pelo Gauchão 2022 Imagem: Luiz Erbes/Luiz Erbes/AGIF

Marinho Saldanha

Do UOL, em Porto Alegre

27/01/2022 04h00

Gabriel Boschilia não foi só titular do Internacional na vitória por 2 a 1 sobre o Juventude, pela primeira rodada do Campeonato Gaúcho. O meia deu assistência para o gol de Yuri Alberto, participou da jogada do gol de Mauricio, criou uma série de oportunidades ofensivas, quase fez um gol e recebeu elogios do técnico Alexander Medina. Com a polêmica de 2021 no ado, ele se vê revigorado e de olho em uma boa temporada no clube.

Boschilia poderia ter deixado o Inter. O jogador ficou, naturalmente, magoado com o que houve no fim da temporada ada. Ele foi chamado de "enganador" no áudio vazado pelo então preparador físico Paulo Paixão, que desestabilizou o ambiente no encerramento da temporada.

  • De segunda a sexta, às 17h, o Canal UOL traz, ao vivo, as últimas informações do mercado da bola. Inscreva-se no YouTube de UOL Esporte e confira também as lives dos clubes, Posse de Bola e UOL News Esporte:

O jogador, porém, resolveu baixar a cabeça e trabalhar. A saída de Diego Aguirre e chegada de Alexander Medina abriu uma nova perspectiva. Totalmente recuperado, como já estava em 2021, da grave lesão que sofreu no joelho, ele não demorou para virar titular nas atividades do CT Parque Gigante.

A primeira chance veio logo no jogo de estreia. Boschilia jogou aberto pela esquerda no duelo com o Juventude. Exatamente por ali surgiram os dois gols, que garantiram a vitória por 2 a 1. Em um deles, a participação foi direta, com o cruzamento para conclusão de Yuri Alberto. No outro, ele foi um dos presentes no início do lance que acabou com chute de Mauricio.

Ainda antes, Boschilia por pouco não abriu o placar numa cobrança de falta. Minutos mais tarde, deixou Mauricio em condição perfeita para marcar, mas o companheiro errou.

O rendimento arrancou elogios da comissão técnica e abriu uma sinalização positiva para a temporada. Quem sabe, o primeiro o para reaver seu melhor futebol, apresentado logo da chegada com Eduardo Coudet no comando.

"O Boschilia é um grande jogador. Gostamos muito da forma dele jogar. Ele se associa bem, joga pelo lado mas se move muito, é muito inteligente com e sem a bola. Tem muita intensidade e fez um ótimo jogo, mesmo depois de um longo tempo jogando poucos minutos. Estamos muito contentes com a atuação dele e de toda equipe", comentou Medina.

No ano ado, Boschilia disputou apenas 20 jogos pelo Inter. Mas na maioria deles jogou menos de 45 minutos. A última vez que ele esteve em campo além da metade do jogo havia sido em julho, contra o Athletico Paranaense. Ontem, foram 70 minutos em campo e a primeira assistência da temporada.

Se antes a saída era realidade, agora Boschilia se vê revigorado no ambiente do Inter. Ir embora já não é pauta. O vínculo no clube vai até o fim deste ano.

Internacional