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

Nasa anuncia missão tripulada ao redor da Lua para novembro de 2024

Lançamento da missão Artemis 1, em novembro de 2022; Artemis 2 fará voo tripulado ao redor da Lua em 2024 - Nasa
Lançamento da missão Artemis 1, em novembro de 2022; Artemis 2 fará voo tripulado ao redor da Lua em 2024 Imagem: Nasa

08/03/2023 08h30Atualizada em 08/03/2023 09h53

A missão espacial Artemis 2, que pretende levar uma tripulação de astronautas à Lua pela primeira vez desde 1972, está programada para novembro de 2024, anunciou nesta terça-feira a Nasa, agência espacial dos Estados Unidos.

Esse cronograma se deve ao sucesso da missão Artemis 1, concluída em dezembro após pouco mais de 25 dias no espaço.

A cápsula Orion, que sobrevoou sem ocupantes para seu primeiro voo de teste, foi impulsionada pelo novo foguete SLS - o mais potente do mundo - e foi colocada em órbita ao redor da Lua, antes de retornar à Terra.

A análise detalhada desta missão continua, disse em coletiva de imprensa o associado da Nasa, Jim Free. Mas as primeiras avaliações permitem uma decolagem da segunda missão até "o final de novembro de 2024", acrescentou ele.

Para esta viagem, a Nasa deverá anunciar este ano os quatro tripulantes da Artemis 2, entre eles um canadense, que irão dar a volta ao redor do satélite sem pousar numa missão de cerca de dez dias.

"Estamos na busca pela tripulação da Artemis 2", afirmou Free. "No momento, não há nada que nos impeça depois do que aprendemos com a Artemis 1."

Artemis 3: a volta do homem à Lua

Depois virá a missão Artemis 3, prevista para cerca de 12 meses após a Artemis 2, em que os astronautas pousarão no polo sul da Lua e que ainda está oficialmente prevista para 2025, embora seja um calendário incerto.

"Nosso plano sempre foi de 12 meses, mas há desdobramentos importantes que precisam acontecer", alertou Free.

O módulo de pouso será uma versão da nave Starship da SpaceX, mas seu primeiro voo orbital ainda não ocorreu, enquanto os trajes espaciais ainda estão em desenvolvimento pela empresa Axiom Space.

O objetivo da Nasa é estabelecer uma presença permanente na Lua, com a construção de uma base e uma estação espacial orbitando o satélite.

Aprender a viver na Lua deve permitir testar as tecnologias necessárias para uma viagem ainda mais longa, como a ida e volta de uma tripulação a Marte.