;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Coca-Cola oferece R$ 3 milhões para quem resolver seu maior problema

Coca-Cola está de olho na chance de descobrir elemento que reproduza gosto de açúcar - Divulgação
Coca-Cola está de olho na chance de descobrir elemento que reproduza gosto de açúcar Imagem: Divulgação

Colaboração para o UOL

16/08/2017 14h44

Maior fabricante de refrigerantes do mundo, a Coca-Cola lançou na última semana um desafio em que promete pagar US$ 1 milhão de dólares (cerca de R$ 3,17 milhões) a quem ajudá-la a superar um de seus maiores problemas: o açúcar.

Em comunicado no seu site oficial, a empresa diz que o concurso é um “apelo à ação para pesquisadores e cientistas para encontrar um composto de origem natural, seguro e com baixa ou nenhuma caloria, que crie a sensação de gosto de açúcar quando usado em bebidas e alimentos”. A Coca-Cola promete pagar o prêmio ao vencedor em outubro de 2018.

“Achei (o valor da premiação) um pouco baixo”, opina Ross Colbert, analista de bebidas da multinacional financeira Rabobank, em entrevista ao site americano "Quartz". “Acredito que quem encontrar a solução pode ganhar mais dinheiro que isso”, completa.

A publicação ressalta que este composto não poderá ser “à base de estévia ou fruta-dos-monges e nem ser extraída de alguma espécie de planta protegida”. “Essa tarefa hercúlea certamente é um dos maiores problemas enfrentados pela indústria de alimentos, que movimenta US$ 4,8 trilhões”, acrescenta.

De acordo com o Quartz, pesquisas mostraram que hoje os americanos bebem 15% menos de refrigerantes se comparado há 15 anos, principalmente por preocupações com a saúde. Para completar, tanto a produção de refrigerantes da Coca-Cola como de sua maior rival, Pepsi, também estão em queda ao longo da década no país.

“Este concurso mostra o tamanho da pressão que é encontrar um substituto (ao açúcar) ou uma adequação. É algo como a busca pelo Santo Graal, porque criou uma adversidade aos refrigerantes gaseificados”, analisa Colbert.

Segundo o Quartz, as tendências de vendas mostram que os consumidores estão cada vez mais preocupados com a ligação do açúcar com doenças crônicas - incluindo doenças cardíacas e diabetes - e estão mudando para bebidas mais saudáveis, como água e chás de ervas. Além disso, o aumento de imposto sobre os refrigerantes está sendo discutido em alguns estados americanos.

Ao longo do tempo, as empresas de soda tentaram alternativas diferentes para o açúcar - particularmente em seus produtos de refrigerante diet -, mas não encontraram nada que o reproduza perfeitamente.

A Pepsi, por exemplo, tentou usar sacarina na Diet Pepsi, mas depois a trocou em 1984 por um adoçante artificial de "melhor sabor", o aspartame. Mas, à medida que os consumidores reclamavam da falta de ingredientes naturais em seus produtos, a empresa decidiu usar a sucralose. No entanto, em 2016, voltou a utilizar o aspartame, alegando que seu antecessor mudou o sabor da bebida.

O Quartz lembra que outra possibilidade, o extrato de estévia, funciona bem para algumas bebidas, especialmente para refrigerantes de limão, mas deixa um gosto ruim na boca quando usado na Coca-Cola.