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

SP: Mais de 5.000 escolas estaduais podem voltar às aulas presenciais hoje

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

Da Agência Brasil

08/02/2021 06h42

Mais de 5.000 escolas da rede estadual de ensino no estado de São Paulo poderão voltar a ter aulas presenciais a partir de hoje. O governo estadual ou a classificar a educação como serviço essencial e, com isso, a abertura das unidades escolares poderá ocorrer mesmo nas fases mais restritivas do Plano São Paulo.

"A decisão é baseada em experiências internacionais para garantir a segurança dos alunos e professores, bem como o desenvolvimento cognitivo e socioemocional das crianças e adolescentes", destacou a Secretaria de Educação do Estado em nota.

Cada unidade poderá definir como fará o rodízio de alunos e suas atividades presenciais e remotas. "Por isso é importante que pais, responsáveis ou alunos maiores de 18 anos entrem em contato com a sua escola para saber os dias e horários em que poderão ir presencialmente à unidade", ressaltou a secretaria.

Para as localidades que estiverem classificadas na fase vermelha ou laranja, a presença dos alunos é limitada a até 35% do número de estudantes matriculados; na fase amarela, a presença é limitada a até 70%; já na fase verde, é itida a presença de até 100% do número de alunos matriculados.

"A volta às aulas presencias está condicionada as determinações locais das prefeituras. Mesmo nos municípios autorizados, a presença dos alunos nas escolas não é obrigatória nas regiões que estejam na fase vermelha ou laranja do Plano São Paulo, mas as escolas poderão permanecer abertas e com atividades nessas etapas".

De acordo com o governo, os estudantes pertencentes ao grupo de risco para a covid-19 que apresentem atestado médico poderão participar das atividades escolares exclusivamente por meios remotos.

Greve de professores

Os professores da rede pública de ensino do estado decidiram fazer greve nas aulas presenciais a partir de hoje. Segundo a Apeoesp (Sindicato dos Professores do Ensino Oficial do Estado de São Paulo), os profissionais vão trabalhar normalmente, mas de forma remota.

A presidente do sindicato, Isabel Noronha, disse que a paralisação é uma greve sanitária, contra a volta das aulas em meio à pandemia de covid-19.

"Não há condições para um retorno seguro. As escolas não apresentam a mínima infraestrutura. Recebemos, a todo momento, fotos e vídeos de professores mostrando banheiros quebrados, lixo acumulado, goteiras, álcool em gel vencido. E tudo isso já está causando consequências graves".

Em nota, a Secretaria de Educação afirmou que a paralisação faz parte de uma agenda político-partidária, e que "o sindicato ainda se esquece de contabilizar os riscos diversos atrelados ao atraso educacional e à saúde emocional e mental das milhares de crianças e adolescentes".

"A retomada das aulas é pautada em medidas de contenção da epidemia, obedecendo aos critérios de segurança estabelecidos pelo Centro de Contingência do coronavírus, embasada em experiências internacionais e nacionais. Estudantes e profissionais com doenças crônicas ou fatores de risco devem permanecer em casa, cumprindo atividades remotas", destacou em nota.