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

Pai diz ter tomado forte choque ao desconectar da tomada o iPad da filha

Tim Gillooley e a filha, Chloe, mostram o carregador que teria explodido; ório seria original - Reprodução/Daily Mail
Tim Gillooley e a filha, Chloe, mostram o carregador que teria explodido; ório seria original Imagem: Reprodução/Daily Mail

Do UOL, em São Paulo

28/08/2013 09h59

O britânico Tim Gillooley, 34, disse ter tomado um forte choque no sábado (24), ao desconectar um iPad da tomada. “Houve um estrondo enorme, que me jogou para o outro lado do quarto [...]. Ri histericamente por cerca de dois minutos. Foi um choque grave, que atingiu meu braço. Minha mãe entrou em pânico e minha filha caiu no choro”, relatou ao “Daily Mirror”. 

Chloe, 8, é a dona do tablet e havia pedido ao pai para tirá-lo da tomada. Gillooley afirmou que a chance de a própria garota ter feito isso é de 90%. “Acho que ela teria morrido [caso tivesse tomado o choque].” O incidente foi registrado na casa da mãe de Gillooley, em Widnes (Cheshire, Reino Unido).

O iPad foi comprado na Apple Store de Liverpool para o aniversário de Chloe, em novembro de 2012. O pai disse ter percebido problemas com o carregador do aparelho e, por isso, levou o tablet a uma loja da Apple três meses antes. No local, ainda segundo Gillooley, os funcionários disseram não haver qualquer problema com o ório. 

Ainda assim, a família comprou um novo carregador original modelo lightening, compatível com o novo padrão de iPad. “Éramos grandes fãs da Apple, mas não deixaremos nossa filha perto de um eletrônico se ele é uma bomba-relógio.”
 

Outros casos
Em julho, foram registrados dois graves acidentes na China envolvendo produtos da Apple – nos dois casos, os usuários teriam conectado seus eletrônicos a carregadores piratas.

No dia 8 de julho, um chinês entrou em coma depois de tomar um choque ao encostar em seu iPhone 4, enquanto o aparelho estava conectado à tomada. Jilin Wu Jian, 30, foi internado em estado grave. Três dias depois, uma aeromoça chinesa morrer ao atender seu iPhone 5 quando o aparelho era carregado.

João Carlos Lopes Fernandes, professor do curso de Engenharia de Computação do Instituto Mauá de Tecnologia, explicou ao UOL Tecnologia que os órios piratas podem realmente causar uma descarga elétrica fatal – esse não era o caso da família britânica, segundo Tim Gillooley.

"Um carregador falso, sem sistema de segurança, pode apresentar um problema e ar muita corrente elétrica para a carcaça do aparelho, causando até mesmo um choque com força suficiente para matar."

O problema dos carregadores piratas é que eles não possuem controle de qualidade, então não há como saber se o ório paralelo possui ou não o equipamento que impede choques. Nos produtos originais, essa chance é mínima, segundo o professor. "Os itens oficiais têm sistemas de segurança que desativam o ório se houver algum problema, em vez de liberar a carga elétrica", completa Fernandes.