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

Richard Strauss Compositor, pianista e maestro alemão

11-6-1864, Munique

8-9-1947, Garmisch-Partenkirchen

Do Klick Educação

17/08/2015 20h58

Antes de ser o compositor de ópera mais apreciado desde Wagner, Strauss já era conhecido por suas sinfonias, inspiradas quase sempre em obras literárias: Don Juan (1888), Morte e Transfiguração (1889), Till Eulenspiegel (1895), Assim Falou Zaratustra (1896, adaptação livre da obra de Frederich Nietzsche), ou Dom Quixote (1897). Em 1915, surgiu Sinfonia dos Alpes, uma composição grandiosa que incluía máquinas de vento e órgão, estruturada num único movimento de quase uma hora de duração. Já havia conseguido o seu primeiro triunfo como compositor de ópera com a obra num só ato Salomé (1905). Com a adaptação de Elektra (drama de Hugo von Hoffmannsthal), em 1909, para a ópera, iniciava-se uma etapa frutífera de colaboração entre ambos os artistas, refletida num intenso intercâmbio epistolar. Outras óperas baseadas em libretos de Hoffmannsthal são O Cavaleiro da Rosa (1911), inspirada em Mozart; a classicista Ariadna auf Naxos (1912), revista em 1916, e as românticas Die Frau ohne Schatten (1919), Die Agyptische Helena (1928) e Arabella (1933). Suas óperas posteriores não obtiveram o reconhecimento alcançado pelas anteriores. Ambos os artistas foram os fundadores em 1917 do festival de Salzburgo. Aliados às óperas e às sinfonias, os lieder foram o terceiro campo de inspiração de Strauss. Entre as mais de 200 composições para violino e orquestra, os denominados Quatro Últimas Canções (1948) são os mais conhecidos. A obra de Strauss alcançou os limites da tonalidade sem chegar a ultraá-los. Sua carreira musical havia-se iniciado com o cargo de maestro em Meiningen, Munique e Weimar. Em 1898, estreou na Ópera de Berlim, da qual ou a ser diretor musical em 1908. Dirigiu a Ópera de Viena de 1919 a 1924, em colaboração com Franz Schalk. Apresentou também diversos concertos no exterior como maestro convidado. Durante o regime nazista, entre 1933 e 1935, foi diretor honorário do Departamento de Música do Reich.