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

Vasco

Palacios aumenta jejum, mas segue em busca de redenção no Vasco

Palacios, atacante do Vasco, durante treino no CT Moacyr Barbosa - Daniel Ramalho/CRVG
Palacios, atacante do Vasco, durante treino no CT Moacyr Barbosa Imagem: Daniel Ramalho/CRVG

Colaboração para o UOL, em São Paulo

03/06/2022 04h00

Depois de começar o ano encostado no Internacional, Carlos Palacios buscou novos ares ao se transferir para o Vasco. Em sua a sétima partida, teve a chance de marcar pela primeira vez com o Cruz-Maltino, mas parou no travessão, ontem (2), contra o Grêmio. O lance, aos 48 minutos da segunda etapa, certamente daria a vitória para a equipe, que acabou empatando sem gols, pela décima rodada da Série B do Brasileiro.

Após o apito final, o atacante não segurou as lágrimas e começou a chorar ainda no gramado. Consolado pelos companheiros, o jogador de 21 anos aumentou o jejum que já a de um ano: a última vez que ele balançou as redes foi quando ainda defendia o Unión Española, em 14 de janeiro de 2021.

Apesar da agem apagada pelo Colorado, após chegar como uma promessa da seleção chilena, Palacios mostrou que pode ser uma boa alternativa para o Gigante da Colina na Série B. Ele participou de todos os jogos do time desde a quarta rodada, sendo titular no triunfo sobre o Brusque por 2 a 0.

Contra o Grêmio, entrou no lugar de Nenê e saiu bem com a função de criar as jogadas. Muito dedicado em campo, não desiste das jogadas, mostrou ter boa visão de jogo para atuar mais recuado, arriscou e conseguiu driblar a defesa e teve duas boas finalizações: a do travessão e uma defendida por Brenno.

Essa determinação, no entanto, ainda precisa ser controlada. O choro no final da partida indica que o atleta está esforçado para espantar a seca de gols. Porém, este se transforma, algumas vezes, em afobação com a bola, faltas desnecessárias sem ela e muita reclamação com a arbitragem.

O protesto com o árbitro resultou, inclusive, em seu terceiro cartão amarelo nas últimas quatro partidas e será um desfalque para o técnico Zé Ricardo no confronto diante do Náutico, na terça (7), às 19h, pela 11ª rodada da Série B. Ele foi também advertido contra Bahia e Guarani, ando ileso apenas no triunfo contra o Brusque, quando foi titular.

Na coletiva de ontem à noite, depois do empate com o Tricolor gaúcho, o treinador elogiou o chileno e também falou sobre seu temperamento. Zé Ricardo acredita que os fatores externos podem ser decisivos para que Palacios reencontre seu bom futebol.

"É um pecado. Ele vem se dedicando bastante. Ele é mais introvertido, a gente tenta abraçar para que possa render o máximo, como atleta e pessoa. Agora que a família chegou ao Rio, ele estando bem consigo mesmo, tem tudo para render mais. Mostrou a qualidade no lance da trave. Um pouco antes, acertou um chute que, se fosse um pouco para o lado, seria uma chance clara de gol. Mérito para o Brenno, um bom goleiro que o Grêmio tem. Ele merecia o gol, falei para ele levantar a cabeça, que outras oportunidades vão surgir. Quem sabe, o gol mais importante está por vir. Lógico que ele gostaria de ter feito o primeiro e dado a torcida, certamente daria a vitória para gente e seria uma festa maior ainda", disse o comandante.

Vasco