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

Ana Maria ensina a fazer rocambole de sorvete de chocolate; veja a receita

Rocambole de sorvete de chocolate feito pela Ana Maria Braga - Reprodução/TV Globo
Rocambole de sorvete de chocolate feito pela Ana Maria Braga Imagem: Reprodução/TV Globo

De Nossa, em São Paulo

23/09/2020 11h47Atualizada em 23/09/2020 11h57

Um rocambole de sorvete de chocolate foi a receita feita hoje por Ana Maria Braga no programa "Encontro com Fátima Bernardes".

O prato em comemoração ao Dia do Sorvete demora 1 hora para ficar pronto, rende até 4 porções e leva coco ralado.

Ingredientes da massa

  • 9 colheres de sopa de achocolatado em pó
  • 100 g de coco ralado
  • 2 colheres de sopa de manteiga
  • 6 ovos
  • 1 colher de sopa de fermento em pó
  • 1 pote de sorvete de chocolate
  • Calda de chocolate a gosto

Ingredientes do empanamento

  • 1 xícara de chá de farinha de trigo
  • 1/2 (meia) xícara de chá de água
  • 1/2 (meia) xícara de chá de açúcar
  • 2 xícaras de chá de flocos de milho moídos
  • 1 xícara de chá de coco ralado seco
  • 1 ovo

Modo de preparo da massa

Pegue um liquidificador e acrescente os ovos, a manteiga, o achocolatado e o coco ralado. Bata até formar uma mistura homogênea.

Transfira para uma tigela, coloque o fermento em pó e misture.

Coloque essa massa em uma assadeira forrada com papel manteiga e untada com manteiga. Leve ao forno médio preaquecido a 180ºC por 15 minutos.

Depois, deixe esfriar. Desinforme sobre uma superfície lisa e forrada com plástico. e o rolo para a massa ficar mais fina.

Corte a massa com uma faca em 4 retângulos de 15 cm por 20 cm.

Coloque cada um dos retângulos em cima de um papel alumínio, espalhe a porção da calda de chocolate, coloque uma camada do sorvete no sentido do comprimento e enrole. Aperte bem e tome cuidado para não vazar o recheio.

Faça o mesmo com os outros retângulos e leve ao freezer por 30 minutos.

Modo de preparo do empanamento

Pegue uma tigela e coloque a farinha de trigo, a água, o açúcar e o ovo. Misture até obter ficar homogêneo.

Pegue outra tigela e coloque os flocos de milho e o coco ralado. Misture bem.

Retire os rolos do freezer, desenrole e e cada um deles na mistura da farinha de trigo e, depois, na de flocos de milho.

Frite cada um dos rolos até dourar. Deixe escorrendo em papel absorvente.

Por fim, corte em fatias e sirva.