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

Esse conteúdo é antigo

China acusa EUA de 'jogar lenha na fogueira' na crise da Rússia com Ucrânia

22.mai.2017 - Hua Chunying, porta-voz da diplomacia de Pequim - Kyodo News/Handout
22.mai.2017 - Hua Chunying, porta-voz da diplomacia de Pequim Imagem: Kyodo News/Handout

Colaboração para o UOL, em São Paulo*

23/02/2022 07h24Atualizada em 23/02/2022 13h33

A China fez hoje duras críticas ao papel dos Estados Unidos na crise ucraniana, acusando Washington de "jogar lenha na fogueira".

"Os Estados Unidos não param de vender armas para a Ucrânia, aumentando a tensão e criando pânico", criticou Hua Chunying, uma porta-voz do Ministério chinês das Relações Exteriores.

"A questão-chave é saber qual papel os Estados Unidos desempenham nas atuais tensões na Ucrânia", afirmou a porta-voz. "Alguém joga lenha na fogueira e acusa os outros. É algo imoral e irresponsável", acrescentou Hua.

Veja onde fica a Ucrânia - UOL - UOL
Veja onde fica a Ucrânia
Imagem: UOL

As declarações ocorrem dois dias após o reconhecimento de duas regiões separatistas do leste da Ucrânia pela Rússia e do anúncio de sanções feito por Washington. E vão na direção contrária da moderação demonstrada pelo governo chinês na segunda-feira (21), quando pediu às partes que "deem sinais de contenção".

Sobre a possibilidade de a China impor sanções à Rússia, Hua afirmou que "elas nunca foram um meio eficaz para resolver problemas".

  • Veja as notícias sobre a crise com a Rússia, análises da colunista Fernanda Magnotta e mais no UOL News com Fabíola Cidral:

Ontem, Estados Unidos, União Europeia, Reino Unido e outros países anunciaram sanções contra a Rússia, dirigidas, principalmente, a bancos, oligarcas e deputados. Trata-se de uma primeira rodada de medidas punitivas, de menor importância em relação às que poderão ser adotadas no caso de uma invasão da Ucrânia.

O conflito no leste da Ucrânia, que já dura oito anos, deixou mais de 14.000 mortos até agora.

Putin diz que exigências da Rússia são 'inegociáveis'

O presidente da Rússia, Vladimir Putin, disse hoje que não cederá em suas exigências na crise em que enfrenta com vários países ocidentais em meio aos temores da comunidade internacional de uma invasão da Ucrânia. Ele afirma que a Ucrânia poderá encerrar o ime se desistir da tentativa de aderir à Otan (Organização do Tratado do Atlântico Norte).

"Os interesses e a segurança de nossos cidadãos não são negociáveis para nós", declarou Putin em um breve discurso exibido na televisão por ocasião do Dia do Defensor da Pátria.

Também hoje, o ministério ucraniano das Relações Exteriores pediu a seus cidadãos que deixem a Rússia rapidamente, porque uma possível invasão poderia reduzir a assistência consular.

"O ministério recomenda aos cidadãos ucranianos que não viajem para a Rússia e aos que já estão na Rússia que saiam imediatamente do território", afirma um comunicado. As Forças Armadas ucranianas também anunciaram um plano de mobilização de reservistas, envolvendo pessoas entre 18 a 60 anos por um prazo máximo de um ano.

*Com a AFP