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

Herbert Spencer Filósofo inglês

27 de abril de 1820, Derby (Inglaterra)

8 de dezembro de 1903, Brighton (Inglaterra)

Da Página 3 Pedagogia & Comunicação

23/10/2008 23h19

Herbert Spencer não frequentou escolas, recebendo toda a sua educação em casa dos pais. De 1837 a 1846 trabalhou como engenheiro na London and Birmingham Railway. Posteriormente, dedicou-se a estudos de geologia e biologia, tendo, entre 1848 e 1853, trabalhado como assessor do diretor do jornal Economist, de Londres.

Um ano antes de abandonar o Economist, começou a publicar seus Princípios de psicologia, em que, sob certos aspectos, antecipa-se a Charles Darwin na formulação do princípio da seleção natural.

A partir de 1860 iniciou a publicação do que chamou de "sistema de filosofia sintética", tentativa de estruturação, num sistema coerente, de toda a produção científica e filosófica de seu tempo, centrada na idéia de evolução.

A doutrina de Spencer se expressa e se identifica com o princípio segundo o qual a evolução se processa: (a) do mais simples para o mais complexo; (b) do mais homogêneo para o mais heterogêneo; (c) do mais desorganizado para o mais organizado.

Esse princípio teve uma aplicação generalizada dentro da própria obra de Spencer e em todo o final do século 19 nas mais diferentes áreas do conhecimento científico, como, por exemplo, na neurologia.

Evolução da sociedade

No que concerne à sua aplicação no domínio da sociologia, ela foi efetuada pelo próprio Spencer, que, assim, aderiu ao movimento do biologismo sociológico. Spencer parte da definição de sociedade como um organismo. Por analogia, destaca, então, processos de crescimento, expressos através de diferenciações estruturais e funcionais.

Tratando da evolução da sociedade, Spencer sublinhará a importância dos processos de interdependência das partes, bem como a da existência de unidades (células) nos organismos e nas sociedades (ou seja, nos indivíduos). Spencer insistirá no fato de que, tal como nos organismos, também nas sociedades se observam fenômenos de assimilação, circulação, regulação, etc.

Argumentos insuficientes

No domínio estritamente filosófico, Spencer proclama a tese do incognoscível. Tal incognoscível seria um absoluto, assentando-se sobre ele os julgamentos humanos e convertendo-se, ele próprio, em objeto das religiões.

Spencer sustenta essa tese e apóia-se em duas séries de argumentos que se poderiam classificar de psicológicos e históricos. Ambas as séries se revelam, contudo, insuficientes no que concerne à determinação de sua natureza, limitando-se a fornecer evidências acerca de sua existência.

Classificação do saber

No domínio da lógica e da metodologia das ciências deve-se a Spencer importante contribuição, representada pela classificação das diversas áreas do saber. Objetando contra os critérios utilizados por Comte em sua classificação, Spencer propôs o critério do maior ou menor grau de abstração.

De acordo com esse critério, Spencer classifica as ciências em três grupos: 1) as ciências abstratas (que estudam a forma dos fenômenos: lógica e matemática); 2) as ciências concretas (que estudam os próprios fenômenos: astronomia, geologia, biologia e psicologia); 3) e as ciências concreto-abstratas (mecânica, física e química).

Enciclopédia Mirador Internacional