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

Por que Salão do Automóvel segue ameaçado mesmo com adiamento para 2021

Divulgação
Imagem: Divulgação

Rodrigo Mora

Colaboração para o UOL

11/03/2020 12h23

O adiamento do Salão do Automóvel de São Paulo não deixou sua situação mais definida, ou sequer estável. Pelo contrário: após o anúncio da General Motors declinando sua participação na edição de 2021, UOL Carros questionou as demais montadoras que, de forma geral, ainda não cravaram sua participação no próximo ano.

Apesar de a Anfavea (Associação de Fabricantes de Veículos Automotores) ter anunciado que o adiamento havia sido definido em comum acordo entre a Reed, organizadora do evento, e as montadoras, algumas marcas preferem aguardar a divulgação de como será a nova versão da feira para confirmarem suas participações. Outras, como Mitsubishi, Suzuki e Porsche, já afirmaram que, a princípio, não devem estar no salão.

A principal reclamação das montadoras sobre a realização do Salão do Automóvel em 2020 era financeira, com críticas ao alto custo de locação e montagem de estandes - que podem variar entre R$ 1 milhão a R$ 20 milhões, dependendo do tamanho do espaço e da infraestrutura.

Com isso, 15 marcas anunciaram que não participariam da feira nos atuais moldes, o que obrigou a Reed a adiar o evento para 2021 e anunciar que o formato seria revisto.

Veja a seguir o posicionamento de cada marca até agora:

Audi: "O assunto ainda será discutido internamente antes de qualquer definição".

BMW: "Nossa decisão foi pontual para 2020. Sobre ano que vem, antes de emitir qualquer opinião, precisamos entender a proposta, datas, local, termos todos os detalhes. Isso vale para BMW e MINI. Também há a questão de ter o Salão Duas Rodas ano que vem, Como funcionaria o calendário?"

CAOA Chery: "A CAOA Chery está avaliando a participação no evento".

Hyundai: "A Hyundai não comenta sobre sua participação no Salão do Automóvel de 2021 antes de ter conhecimento de quais serão as inovações propostas para este evento"

Mitsubishi/Suzuki: 'A HPE Automotores do Brasil até o momento não participará do SDA 2021".

Porsche: "A Porsche não tinha planos de participar do Salão neste ano para focar seus recursos em eventos mais direcionados ao seu público. Essa decisão está mantida para 2021, mas pode mudar diante das circunstâncias".

Renault: "A Renault está discutindo, com a Anfavea, o novo formato, que ninguém sabe qual será. Estamos trabalhando no assunto".

Toyota/Lexus: "Por ora, a Toyota mantém o posicionamento oficial sobre a não participação do evento neste ano e não comentará sobre a próxima edição". Quando anunciou sua retirada do Salão de 2020, a montadora havia dito que "as marcas Toyota e Lexus não irão participar este ano do Salão do Automóvel de São Paulo. Os esforços de ambas estarão concentrados em ações de marketing e comunicação voltadas à mobilidade, tecnologia e experiência. A Toyota do Brasil busca oferecer a melhor experiência de compra e propriedade de um automóvel a todos os clientes e está se desafiando para olhar maneiras inovadoras de gerir o negócio. Essa decisão é válida somente para a edição 2020 do evento".