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

Saúde

Sintomas, prevenção e tratamentos para uma vida melhor


Em estudo, pesquisadores dos EUA restauram perda de visão em camundongos

Descoberta pode auxiliar no tratamento de doenças relacionadas à idade, como glaucoma - iStock
Descoberta pode auxiliar no tratamento de doenças relacionadas à idade, como glaucoma Imagem: iStock

Do VivaBem, em São Paulo

03/12/2020 14h08

Pesquisadores da Harvard Medical School, nos EUA, conseguiram reverter a perda de visão relacionada à idade e outros danos causados pelo glaucoma em um estudo feito com camundongos. Os resultados foram publicados no periódico Nature nesta quarta-feira (2).

O trabalho representa a primeira demonstração de que pode ser possível reprogramar, com segurança, tecidos complexos, como as células nervosas do olho, para uma idade mais precoce.

Além de zerar o relógio de envelhecimento das células, os pesquisadores reverteram com sucesso a perda de visão em animais com uma condição que imita o glaucoma humano — uma das principais causas de cegueira em todo o mundo.

"Se confirmados por meio de estudos adicionais, esses resultados podem ser transformadores para o tratamento de doenças da visão relacionadas à idade, como o glaucoma, e para os campos da biologia e de terapias médicas para doenças em geral", disse autor principal David Sinclair, professor da Harvard Medical School.

Entretanto, os cientistas alertam que as descobertas ainda precisam ser replicadas em estudos futuros, incluindo diferentes modelos animais, antes de qualquer experimento em humanos.

Como o estudo foi feito

A equipe usou um AAV (vírus adeno-associado) como veículo para injetar nas retinas dos camundongos três genes restauradores da juventude conhecidos pela sigla OSK (Oct4, Sox2 e Klf4).

No estudo, foram utilizados animais com nervos ópticos danificados e em camundongos com uma condição que imita o glaucoma humano.

Quais foram os resultados do estudo?

Houve um aumento de duas vezes no número de células ganglionares localizadas na retina e sobreviventes após a lesão. Também ocorreu um aumento de cinco vezes no crescimento do nervo.

O estudo concluiu que o tratamento com os genes OSK apresentou diversos benefícios para os olhos: promoveu a regeneração de nervos ópticos danificados; reverteu a perda de visão em animais com uma condição que imita o glaucoma humano e também restaurou a perda de visão em animais idosos sem glaucoma.

Por que este estudo é importante?

A conquista, segundo os pesquisadores, representa a primeira tentativa bem-sucedida de reverter a perda de visão induzida pelo glaucoma, em vez de apenas conter sua progressão.

Se replicada com mais estudos adicionais, a abordagem pode abrir caminho para terapias que promovam a reparação de tecidos em vários órgãos e revertam o envelhecimento e doenças relacionadas à idade em humanos.