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

Fifa decide não divulgar áudios do árbitro de vídeo na Copa do Mundo

Ex-árbitro Pierluigi Collina também comparece ao "Fifa The Best" - Reuters/John Sibley
Ex-árbitro Pierluigi Collina também comparece ao "Fifa The Best" Imagem: Reuters/John Sibley

Rodrigo Mattos

Do UOL, em Doha (Qatar)

18/11/2022 11h39

Classificação e Jogos

Os diálogos entre os árbitros de campo e os árbitros de vídeo na Copa do Mundo do Qatar não serão divulgados para o público e nem para a imprensa. A decisão foi comunicada hoje (18) pela Fifa em coletiva realizada em Doha, na capital do país.

O porta-voz da novidade foi o ex-árbitro e agora chefe de arbitragem da entidade, Pierluigi Collina. "Conversas entre os árbitros não serão públicas. Sabemos que há discussões sobre isso. Mas, neste momento, não há possibilidade de ouvir as conversas no campo", resumiu o italiano.

Na Copa da Rússia-2018, houve uma controvérsia entre a CBF e a Fifa por conta de uma decisão de arbitragem no jogo entre Brasil e a Suíça. A confederação reclamava da não-marcação de uma suposta falta em Miranda em gol suíço, a Fifa negava erro. Inicialmente, a Fifa se recusou a divulgar o vídeo do VAR apesar do pedido da CBF. Depois, mostrou diálogos e imagens em entrevista.

Colina ainda detalhou como funcionará a nova tecnologia do VAR para marcar de forma semi-automática o impedimento. A linha será traçada com base em 12 câmeras que vão analisar um chip na bola e 29 pontos-chave dos jogadores para analisar se a posição é legal.

"O VAR não terá de traçar a linha. Será mais rápido. Ter as linhas traçadas instantaneamente. É difícil dizer em média (quanto tempo vai demorar). As vezes, o árbitro considera não só o impedimento, mas outras coisas", contou Colina.

Em média, o VAR atualmente demora 70 segundos no mundo para decidir casos de impedimento, segundo a Fifa. A intenção é reduzir esse tempo e tornar mais precisa a marcação. Mas ainda haverá uma validação da tecnologia ser feita pelos árbitros de vídeo.

"Quando dizemos validar, batemos na madeira, 'as vezes a tecnologia não funciona. Quando não funciona, não podemos seguir", disse ele.

Colina ainda explicou que houve seminário para os técnicos de todas as 32 seleções para explicar orientações sobre práticas da arbitragem. Entre os destaques, foram apontados lances íveis de cartão vermelho como entradas com a bola no meio da perda do rival, cotoveladas e pés altos na cara do adversário. O chefe de arbitragem também condenou simulações e prometeu punições.