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

James Prescott Joule Físico inglês

24 de dezembro de 1818, Salford, Lancashire (Inglaterra)

11 de outubro de 1889, Sale, Cheshire (Inglaterra)

Da Página 3 Pedagogia & Comunicação

03/04/2009 13h23

James Prescott Joule estudou durante algum tempo com John Dalton (químico e físico inglês, fundador da teoria atômica moderna), mas sua formação científica foi principalmente autodidática.

James Joule foi o primeiro cientista a estabelecer o princípio da interconversibilidade das diversas formas de energia, ou seja, da termodinâmica. Ele também se preocupou, desde cedo, com a importância de se fazerem medidas exatas - suas pesquisas caracterizaram-se particularmente por essa preocupação com a precisão dos dados obtidos.

Sua importante descoberta resultou de uma longa série de experiências sobre as relações quantitativas entre os efeitos elétricos, mecânicos e químicos. Em 1843, Joule anunciou ter determinado a quantidade de trabalho necessária para produzir uma unidade de calor, chamada equivalente mecânico do calor.
 

Unidade Joule

Para conseguir o equivalente mecânico do calor, Joule empregou quatro métodos crescentes de exatidão. O primeiro consistia em medir a elevação da temperatura, a corrente e o trabalho mecânico resultante da rotação de um pequeno eletromagneto na água entre os pólos de outro magneto.

O segundo método determina a elevação da temperatura forçando a água através de tubos capilares. O terceiro depende da compressão do ar. E o quarto - o mais conhecido nos dias de hoje -, este produz calor pela fricção da água por meio de pás, girando sob a ação da queda de um peso.

Por esse processo Joule obteve diferentes resultados para a unidade térmica britânica, concluindo por adotar a de 781,8 libras-pé, chamada unidade Joule, e que corresponde ao trabalho produzido ao se deslocar um metro um corpo com um Newton (1 N) de peso.

James Joule também pesquisou as mudanças térmicas experimentadas pelos gases comprimidos através de pequenas aberturas - e as mudanças experimentadas pelos sólidos, sob compressão, em solução, e em diversas outras situações.

Sua obra completa foi publicada, em dois volumes, pela Physical Society of London, sob o título Trabalhos científicos, entre 1885 e 1887.
 

Enciclopédia Mirador Internacional; Oxford Dictionary of Scientists