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

Rodolfo Rodrigues

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Brasileirão 2022 bate o recorde de treinadores estrangeiros

Ex-Athletico-PR e Benfica-B, o português António Oliveira será o novo treinador do Cuiabá - JOKA MADRUGA/FUTURA PRESS/ESTADÃO CONTEÚDO
Ex-Athletico-PR e Benfica-B, o português António Oliveira será o novo treinador do Cuiabá Imagem: JOKA MADRUGA/FUTURA PRESS/ESTADÃO CONTEÚDO

Colunista no UOL

03/06/2022 14h58

Com a chegada de mais um técnico português, António Oliveira no Cuiabá, o Campeonato Brasileiro de 2022 chegou a marca recorde 10 treinadores estrangeiros em uma única edição desde 1959.

No início da Série A deste ano, 9 dos 20 clubes começaram a competição com técnicos estrangeiros, um recorde na história do torneio. Após a 1ª rodada, porém, o Internacional demitiu o técnico uruguaio Alexander Medina. Agora, com a volta de António Oliveira, que em 2021 dirigiu o Athletico-PR, o Brasileirão volta a ter 9 técnicos entre os 20 participantes e um total de 10 estrangeiros numa só edição.

Em 2020, o Campeonato Brasileiro havia batido o recorde de 7 técnicos estrangeiros ao mesmo tempo e 8 no total — sem contar o interino Bruno Lopes, que comandou o Bahia em uma rodada. Na edição de 2022, os portugueses são maioria (5) entre os treinadores estrangeiros. Além de Abel Ferreira, que chegou ao Palmeiras em setembro de 2020, estão Paulo Sousa (Flamengo), Vítor Pereira (Corinthians) e Luís Castro (Botafogo), além do recém-contratado António Oliveira. Da Argentina, são três: Juan Pablo Vojvoda (Fortaleza), António Mohamed (Atlético-MG); e Fabián Bustos (Santos). O paraguaio Gustavo Morínigo (Coritiba) e o uruguaio Alexander Medina (que já deixou o Internacional), completam a lista.

Técnicos estrangeiros no Brasileirão 2022:
. António Mohamed (Atlético-MG)
. Luís Castro (Botafogo)
. Gustavo Morínigo (Coritiba)
. Vítor Pereira (Corinthians)
. Paulo Sousa (Flamengo)
. Juan Vojvoda (Fortaleza)
. Abel Ferreira (Palmeiras)
. Fábian Bustos (Santos)
. António Oliveira (Cuiabá) - Entrou na 9ª rodada
. Alexander Medina (Internacional) - Saiu na 1ª rodada

Edições do Brasileirão com mais técnicos estrangeiros (1971-20212:
[10] - 2022
8 - 2021
7 - 2020
4 - 1977, 1978 e 2016
3 - 1971, 1976 e 2003
2 - 1974, 1975, 1979, 1983, 1997, 1998, 2014, 2015, 2017 e 2019

Siga Rodolfo Rodrigues no Instagram

Siga Rodolfo Rodrigues no Twitter