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

Governo deve ser claro para engajar povo contra crise elétrica, diz associação

"Se não houver uma comunicação clara, dificilmente a sociedade irá aderir", alerta presidente da Abraceel - Marcelo Camargo/Agência Brasil
"Se não houver uma comunicação clara, dificilmente a sociedade irá aderir", alerta presidente da Abraceel Imagem: Marcelo Camargo/Agência Brasil

27/08/2021 17h19Atualizada em 27/08/2021 18h46

O governo precisa explicar com clareza e celeridade à população como funcionará o programa de redução voluntária de demanda elétrica com foco em consumidores residenciais, para lidar com a crise hidrelétrica, ou não terá sucesso, afirmou à Reuters o presidente da Associação Brasileira dos Comercializadores de Energia (Abraceel).

Nesta semana, o governo anunciou durante coletiva de imprensa sobre o tema que lançará em setembro um programa que visa premiar aqueles consumidores de energia do mercado regulado que conseguirem reduzir a demanda por eletricidade. No entanto, não ofereceu detalhes.

No mercado regulado, pequenas e médias empresas e consumidores residenciais adquirem eletricidade junto a distribuidoras.

Em conversa por telefone, o presidente da Abraceel, Reginaldo Medeiros, disse que o governo precisa explicar à população de onde virão os recursos para bonificação, como eles serão pagos e, o mais importante, quais as medidas eficazes que a população pode tomar para reduzir o consumo.

"O sucesso de um programa de redução da demanda tem a ver com a comunicação e as pessoas só vão colaborar se tiverem clareza de quais as medidas têm que tomar para reduzir o consumo", disse Medeiros.

O governo não explicou à população como vai funcionar... É preciso que a população entenda quais são as medidas... Se não houver uma comunicação clara, dificilmente a sociedade irá aderir ao programa.
Reginaldo Medeiros, presidente da Abraceel

"O sucesso do racionamento de 2001 foi estabelecimento de regras claras, objetivas e de fácil compreensão e operacionalização."

Procurado, o Ministério de Minas e Energia não respondeu imediatamente a pedido de comentários.

A Abraceel representa empresas de comercialização de energia, que operam com compra e venda de contratos de suprimento e atendem consumidores no mercado livre, ambiente em que grandes indústrias e centros comerciais podem negociar diretamente contratos de suprimento.

O governo já tem um programa em estágio avançado de elaboração para redução voluntária de consumo no mercado livre.

Nesse ambiente, os consumidores inclusive já contam com mecanismos naturais que permitiriam reduzir o consumo e obter vantagens. Com o programa do governo, terão novos estímulos, mas em um momento em que a indústria está em recuperação após ser abalada pela pandemia de covid-19.

"Grandes consumidores já têm bastante informação. Os menores, não", afirmou.

A Abraceel defende o direito da livre escolha do fornecedor de energia elétrica, a chamada portabilidade da conta de luz, e de gás natural pelos consumidores. Foi fundada no ano 2000 e atualmente conta com mais de 100 empresas associadas, que comercializam 85% do volume de energia elétrica do segmento.