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

Prefeitura de SP lança consulta sobre retorno às aulas na próxima segunda

14 jan. 2021 - Funcionária limpa mesas em uma escola municipal na zona sul de São Paulo - Tiago Queiroz/Estadão Conteúdo
14 jan. 2021 - Funcionária limpa mesas em uma escola municipal na zona sul de São Paulo
Imagem: Tiago Queiroz/Estadão Conteúdo

Do UOL, em São Paulo

07/04/2021 23h45

A Prefeitura de São Paulo lançou hoje consulta sobre intenção de retorno às aulas presenciais a partir da próxima segunda-feira (12). O formulário pode ser ado por meio da página da Secretaria Municipal de Educação na internet. (Para mais informações, clique aqui)

Segundo a prefeitura, pais (ou responsáveis) poderão responder até sexta-feira (09). A ideia é preparar as escolas e organizar a logística necessária para atendimento dos alunos quanto a merenda e transporte escolar.

Quem decidir permanecer no ensino remoto deverá realizar as atividades de caráter obrigatório por meio da plataforma Google Classroom ou através de outros meios de disponibilização. Alunos e professores que fazem parte de grupo de risco permanecerão em regime remoto, como já está previsto nas orientações vigentes.

A Prefeitura de São Paulo adiou a volta às aulas presenciais nas escolas públicas e privadas de 5 para 12 de abril. A decisão está no decreto 60.158/21, publicado no Diário Oficial do dia 1º, no qual é ressaltado que ela pode ser prorrogada no caso de prolongamento da fase emergencial no estado, a depender do agravamento da pandemia da covid-19.

O decreto destaca que as escolas estão autorizadas a fornecer alimentos para os estudantes mesmo durante a fase emergencial. Além disso, uma instrução normativa da Secretaria Municipal da Educação, também publicada nesta quinta, estende o recesso escolar na rede municipal até 9 de abril.

"O retorno às atividades presenciais ocorrerá no dia 12/04/2021, condicionado a decisão da Secretaria Municipal da Saúde, e com prioridade aos profissionais dos serviços essenciais: saúde, educação, assistência social, transporte público, segurança e serviço funerário, limitado ao porcentual 35% dos estudantes", diz a publicação. Antes da data, os profissionais de educação serão testados contra o coronavírus entre 5 e 8 de abril.

Em coletiva de imprensa na semana ada, o secretário estadual da Educação, Rossieli Soares, afirmou que as aulas presenciais estão autorizadas pelo Estado desde que sejam obedecidas as regras da fase vermelha do Plano São Paulo, como a ocupação máxima de 35%, e autorizadas pelas prefeituras.

"Alguma restrição pode ter sido feita por algum dos municípios, depende do município. Temos municípios que autorizaram e que não autorizaram", declarou.

Rossieli explicou que a rede estadual continuará na próxima semana com atividades presenciais para os estudantes "que mais precisam", enquanto os demais estão exclusivamente com aulas remotas. "A rede privada está autorizada com todos os cuidados desde que priorize aqueles que mais precisam, e que observe as regras municipais."

O balanço municipal mais recente, de quarta-feira, 7, aponta 764.032 casos e 23.388 óbitos pelo novo coronavírus confirmados na cidade de São Paulo.

*Com informações da agência Estadão Conteúdo