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

Santos

Apenas um dos últimos cinco técnicos do Santos chegou à marca de 30 jogos

[email protected] (Redação)

22/02/2022 08h00

Nos últimos anos, o Santos vem encontrando dificuldades para encontrar um técnico que se firme no cargo. Na sexta-feira, a diretoria decidiu demitir Fábio Carille após um mau início de temporada. O comandante dirigiu o clube em apenas 27 jogos.

Acontece que esse pouco tempo no comando não foi uma exclusividade de Carille. Dos últimos cinco treinadores que aram pelo Peixe, apenas um deles conseguiu chegar a marca de 30 partidas.

O único que conseguiu foi o Cuca. Em 2020, ele treinou o Alvinegro Praiano em 46 partidas, das quais ele venceu 18, empatou 15 e perdeu 13. Além disso, foram 64 gols marcados e 56 sofridos. O treinador decidiu deixar a equipe após o vice da Copa Libertadores, devido a problemas de saúde em sua família.

Antes dele assumir, quem estava no comando era Jesualdo Ferreira. O português, porém, não teve sucesso na Baixada. Foram 15 jogos, com seis triunfos, quatro igualdades e cinco reveses.

Já após a saída de Cuca, a diretoria apostou em Ariel Holan. O argentino sentou no banco de reservas do clube da Vila Belmiro em 13 compromissos, com quatro êxitos, três empates e cinco derrotas.

Na sequência, foi a vez de Fernando Diniz assumir. O técnico sofreu muita pressão da torcida e acabou sendo demitido depois de 27 compromissos, com 45,67% de aproveitamento (10 vitórias, sete empates e 10 derrotas). Carille, que foi seu sucessor, aliás, teve exatamente o mesmo rendimento, com nove triunfos, 10 igualdades e oito reveses.

Dos últimos três técnicos do Santos, portanto, nenhum deles sequer atingiu a marca de 30 partidas pelo clube. Ao todo, foram três comandantes em um intervalo de apenas um ano.

Agora, a diretoria alvinegra corre contra o tempo para encontrar um novo comandante. E a esperança que o escolhido consiga quebrar essa marca negativa.

Santos