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

OMT: turismo internacional pode cair entre 60 e 80% este ano

Getty Images/iStockphoto
Imagem: Getty Images/iStockphoto

07/05/2020 09h06

O volume de turistas internacionais pode cair entre 60 e 80% em 2020, em consequência da pandemia de coronavírus e das restrições de movimentos em todo o planeta, anunciou a Organização Mundial do Turismo (OMT).

No primeiro trimestre do ano, as chegadas de turistas internacionais caíram 22%, indica um comunicado da OMT, que cita a "pior crise" desde o início de seus registros, em 1950.

A queda dos três primeiros meses representa no momento "67 milhões a menos de turistas internacionais", ou seja, "80 bilhões de dólares em exportações perdidas", afirma a agência da ONU com sede em Madri.

A redução do turismo internacional nas Américas foi de 15,2% nos primeiros três meses do ano, após um mês de janeiro estável, fevereiro com alta de 3% e um mês de março com a queda de 465 das chegadas em ritmo anual.

Por sub-regiões, as chegadas caíram 13% no primeiro trimestre na América do Norte, 19% na América do Sul e 20% no Caribe.

No relatório publicado nesta quinta-feira, a OMT revisou drasticamente e reduziu uma projeção apresentada no fim de março, na qual previa uma queda do turismo internacional em 2020 de entre 20 e 30%.

Em 2019, 1,5 bilhão de turistas internacionais viajaram pelo globo, dado que representa um aumento de 4% na comparação com o ano anterior, de acordo com a OMT, que em janeiro esperava uma evolução similar para 2020.

"O turismo recebeu um golpe duro. Milhões de postos de trabalho estão em perigo em um dos setores da economia que mais empregam mão de obra", afirmou o secretário-geral da OMT, Zurab Pololikashvili.

Somente em março, as chegadas de turistas internacionais em todo o mundo caíram 57%, aponta a OMT.

A agência elaborou três cenários para 2020, em função do momento de retirada das restrições de viagens que estão em vigor em praticamente todo o mundo.

As chegadas de turistas internacionais cairiam entre 60 e 80%, dependendo do momento do fim das restrições, em julho (primeiro cenário), setembro ou dezembro, o pior cenário.

"A demanda interna pode registrar uma recuperação antes da demanda internacional", destaca a OMT, que cita uma pesquisa com analistas.

"A maioria espera começar a ver sinais de recuperação no último trimestre de 2020, mas sobretudo em 2021", acrescenta a organização, antes de indicar que "os especialistas das Américas são os menos otimistas e estão menos dispostos a acreditar na recuperação em 2020".