;(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();
})();
Endrick chorou no banco de reservas após mais uma partida sem marcar gols pelo Palmeiras. Aos 16 anos, o centroavante ainda não balançou as redes nesta temporada.
Mas será que seus números são ruins em comparação com outras promessas que despontaram nos últimos anos no Brasil com status parecidos com o dele? O UOL levantou os dados dos 17 primeiros jogos de outros "fenômenos" para fazer essa comparação.
Endrick x 'a rapa'
O atacante do Palmeiras tem média de um gol a cada 310 minutos. Foram 17 jogos como profissional, com três gols marcados e uma assistência. Endrick somou 932 minutos em campo e também deu uma assistência, chegando a uma média de 233 minutos para uma participação direta em gol.
Neymar tinha média um pouco melhor em gols marcados: um a cada 295 minutos. O então "Menino Ney" somou quatro gols e cinco assistências no mesmo intervalo de jogos, mas em 1181 minutos. Em participações diretas em gol, a média melhora: uma a cada 131 minutos.
Vini Jr fica atrás de Endrick no quesito gols: o atual jogador do Real Madrid marcou apenas uma vez e 430 minutos somados. O atacante revelado pelo Flamengo teve também uma assistência, o que o deixa com média melhor do que o palmeirense em participações diretas: uma a cada 215 minutos.
Vitor Roque lidera artilharia da relação: média de uma bola na rede a cada 128 minutos em campo. Foram seis tentos e uma assistências em 771 minutos nos primeiros 17 jogos.
Gabriel Jesus vem logo atrás: um gol a cada 129 minutos. Também revelado pelo Palmeiras, ele somou cinco gols e uma assistência nos primeiros 17 jogos e em menos minutos do que Endrick: 649 contra 932.
Rodrygo, Alexandre Pato e Gabigol ficam à frente de Endrick, Neymar e Vini Jr, completando a relação analisada. O atacante do Real Madrid marcou quatro vezes, com média de um gol a cada 155 minutos. O ex-Internacional colocou seis bolas nas redes em 1106 minutos: um a cada 184 minutos. Gabigol teve média de um tento a cada 202 minutos, marcando quatro vezes no intervalo e ainda dando uma assistência.
Como está a temporada de Endrick
O jovem iniciou a temporada com o status de titular do time de Abel Ferreira. Mesmo com apenas 16 anos, ele desbancou as recentes contratações para o setor, o argentino Flaco López e o uruguaio Miguel Merentiel.
Endrick está em jejum há dez jogos. O "fenômeno" do Verdão não marcou, nem deu assistência ainda nesta temporada.
No ano ado, Endrick havia marcado três vezes e dado uma assistência em sete partidas. O desempenho o credenciou para ganhar a confiança de Abel neste ano.
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.