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

Salgado afirma em vídeo que Zé Ricardo deverá ser o novo técnico do Vasco

Zé Ricardo teve boa agem pelo Vasco em 2017, quando classificou o clube para a Libertadores - Thiago Ribeiro/AGIF
Zé Ricardo teve boa agem pelo Vasco em 2017, quando classificou o clube para a Libertadores Imagem: Thiago Ribeiro/AGIF

29/11/2021 23h17

O presidente do Vasco, Jorge Salgado, tem se esquivado. Institucionalmente evitado o contato com a imprensa. Ao torcedor, nos canais oficiais, repete palavras vazias. Contudo, na noite desta segunda-feira um vídeo autoexplicativo viralizou nas redes sociais. Nele, um torcedor pergunta se há grandes chances de o time subir à Série A do Campeonato Brasileiro no ano que vem. Com meio sorriso, Jorge Salgado respondeu comentando sobre o provável próximo treinador do time, Zé Ricardo. Falou também sobre o encaminhamento das contratações de Ricardo Gomes e mais um diretor.

"Eu acho. Quer dizer, nós vamos fazer uma reformulação, estamos no final de uma negociação com um treinador, que deve ser o Zé Ricardo. Estamos trazendo também o Ricardo Gomes. Só falta, agora, fechar com o diretor de futebol, que está aí também numa fase final. A partir dessa reformulação nós vamos para o jogo de novo. Acho que temos grandes possibilidades. O futebol, infelizmente, não é uma ciência exata. Trabalhamos muito esse ano que ou, avançamos muito do ponto de vista de processos internos de futebol, etc, mas no campo foi um desastre. Nada deu certo. Espero que ano que vem as coisas melhorem e a gente volte aí para a primeira divisão", afirmou, além de emendar sobre como analisa o pedido encaminhado para o Conselho Deliberativo do clube, de o futebol poder aderir à modalidade clube-empresa:

"Uma coisa importante também que deve acontecer agora no final do ano: nós vamos botar a SAF no Conselho, que é a sociedade anônima de futebol, e com isso vai abrir uma perspectiva de a gente atrair uns sócios, players internacionais para investirem no Vasco. E aí a gente acaba, o resultado disso aí é endividamento bem mais baixo e fortalecer o futebol com investimentos novos. Então, eu acho que o ano que vem pode ser um ótimo ano, se Deus quiser".

Vasco