DOCUMENTOS · ROTAS · SHELL · OFFLINE

MPA e SPA navegam de formas diferentes; PWA acrescenta capacidades

Uma MPA pode ser instalável e funcionar offline. Uma SPA pode não ser PWA. As siglas respondem a perguntas arquiteturais diferentes e podem ser combinadas.

Imagem: Mobilepadawan / Wikimedia Commons, CC0

NÃO COLOQUE AS TRÊS SIGLAS NO MESMO EIXO

MPA e SPA descrevem navegação; PWA descreve uma experiência Web aprimorada.

MPA

MULTI-PAGE APPLICATION

Qual documento será carregado?

Cada navegação principal normalmente pede outro documento HTML. Servidor e navegador participam da troca de página.

SPA

SINGLE-PAGE APPLICATION

Como a interface muda sem outro documento?

Após carregar um shell inicial, JavaScript gerencia rotas, busca dados e atualiza a interface no cliente.

PWA

PROGRESSIVE WEB APP

Quais capacidades a experiência oferece?

Instalação, funcionamento resiliente, integração ao dispositivo e experiência autônoma podem ser acrescentados progressivamente.

MPAouSPA+PWA quando fizer sentido
PWA não é sinônimo de SPA. Um site de notícias com documentos renderizados no servidor pode registrar um Service Worker, oferecer manifesto, ser instalável e disponibilizar edições offline. Da mesma forma, uma SPA pode depender totalmente da rede e nunca ser instalável.

ACOMPANHE UM CLIQUE EM “PRODUTO”

A diferença aparece no limite entre navegação do documento e atualização da aplicação.

Laboratório visual · MPA, SPA e suas combinações com PWA

Compare quem reconhece a rota, quais recursos atravessam a rede e o que o navegador substitui.

navegação completa
Seu navegador não suporta canvas.

MPA · O DOCUMENTO É A UNIDADE DE NAVEGAÇÃO

Cada URL importante pode nascer como HTML completo.

Em uma aplicação multipágina, links e formulários usam a navegação nativa. O servidor escolhe ou renderiza o documento da rota. CSS e JavaScript podem ser compartilhados e reaproveitados do cache, por isso “nova página” não significa baixar tudo novamente.

1

Usuário ativa um link

O navegador resolve a URL, atualiza o histórico e inicia uma navegação.

2

Servidor processa a rota

Autenticação, consulta e template podem produzir HTML específico para aquela URL.

3

Novo documento é construído

O navegador analisa HTML, descobre recursos e substitui o documento anterior.

4

Recursos comuns podem vir do cache

Folhas, scripts, fontes e imagens versionadas não precisam ser transferidos integralmente outra vez.

Pontos fortes

  • modelo nativo de URLs e navegação;
  • HTML útil mesmo antes de grandes scripts;
  • isolamento natural entre documentos;
  • boa adequação a conteúdo e formulários tradicionais;
  • falhas de JavaScript podem ter impacto menor.

Cuidados

  • trocas completas podem parecer menos fluidas;
  • estado visual entre páginas precisa ser persistido;
  • templates e componentes devem evitar duplicação;
  • servidor participa de mais navegações;
  • interações ricas ainda exigem JavaScript direcionado.

SPA · A APLICAÇÃO CONTROLA AS ROTAS NO CLIENTE

O documento inicial permanece; a interface é atualizada.

Uma SPA carrega HTML, estilos e JavaScript que formam um app shell. O roteador do cliente intercepta navegações internas, usa a History API, busca dados ou código adicional e altera o DOM sem substituir o documento inteiro.

Shell inicial

Contêiner HTML, estilos, runtime e código das rotas essenciais.

Router

Mapeia URLs para telas e mantém histórico navegável.

Dados e chunks

APIs e importações dinâmicas fornecem conteúdo após o carregamento.

Estado da interface

Componentes preservam contexto e atualizam apenas regiões necessárias.

O servidor precisa conhecer o fallback das rotas. Se a pessoa abre diretamente /produto/42, o servidor ou a plataforma de hospedagem deve devolver o shell da SPA; caso contrário, uma rota válida no cliente pode resultar em 404 no recarregamento.

Pontos fortes

  • transições locais fluidas;
  • estado de interface pode sobreviver às rotas;
  • boa experiência para ferramentas altamente interativas;
  • cliente e API podem evoluir com contratos claros;
  • carregamento sob demanda divide o código.

Cuidados

  • JavaScript inicial pode atrasar interatividade;
  • roteamento, foco e anúncios acessíveis exigem cuidado;
  • erros no runtime podem afetar toda a aplicação;
  • SEO e compartilhamento dependem da estratégia de renderização;
  • cache e atualização de versões precisam ser coordenados.

PWA · APRIMORAMENTO PROGRESSIVO

A aplicação pode ganhar instalação, resiliência e integração.

Progressive Web App não é um formato único nem uma certificação universal. É uma experiência construída com tecnologias da Web e aprimorada conforme navegador e dispositivo oferecem suporte. Critérios de instalação e capacidades disponíveis variam entre plataformas.

Contexto seguro

Service Workers e APIs sensíveis exigem HTTPS, com exceções de desenvolvimento local.

Web App Manifest

Nome, ícones, cores, URL inicial e modo de exibição descrevem a experiência instalada.

Service Worker

Executa separadamente da página, recebe eventos e pode intermediar requisições e tarefas em segundo plano.

Estratégia de cache

A aplicação escolhe quais respostas tornam a experiência útil com rede lenta ou ausente.

Instalação

Quando os critérios do navegador são atendidos, a experiência pode ser adicionada ao dispositivo e aberta em janela própria.

Capacidades opcionais

Notificações, compartilhamento e outras APIs dependem de suporte, permissão e necessidade real.

Laboratório visual · Service Worker entre aplicação, cache e rede

Alterne a condição para entender por que “offline” precisa de uma estratégia explícita.

resiliência
Seu navegador não suporta canvas.

Online · network first: o Service Worker tenta obter dados atuais na rede e pode armazenar a resposta. Se houver falha, uma resposta compatível do Cache API pode funcionar como fallback.

Cache não transforma qualquer funcionalidade em offline. Arquivos de interface podem estar disponíveis, mas criar um pedido, validar estoque ou sincronizar pagamentos exige uma estratégia de dados, tratamento de conflitos e comunicação clara sobre o que ainda não chegou ao servidor.

MPA/SPA NÃO DECIDEM SOZINHAS SSR/CSR

Renderização e navegação são decisões relacionadas, mas separadas.

CombinaçãoPrimeira respostaNavegação posteriorExemplo conceitual
MPA + SSRServidor entrega HTML da rota.Outro documento é renderizado no servidor.Portal, documentação, loja tradicional.
MPA + ilhasHTML completo com regiões interativas.Navegação de documento; componentes locais hidratam.Site de conteúdo com busca ou carrinho rico.
SPA + CSRShell com JavaScript.Cliente busca dados e constrói telas.Painel interno e ferramenta de edição.
SPA + SSR/hidrataçãoServidor produz HTML inicial da SPA.Cliente assume rotas após hidratar.Aplicação pública com interação intensa.
MPA ou SPA + PWAQualquer uma das estratégias anteriores.Service Worker e manifesto acrescentam capacidades.Conteúdo offline ou ferramenta instalável.

ESCOLHA PELO FLUXO, NÃO PELA MODA

A melhor arquitetura depende do produto, equipe e restrições.

01

O conteúdo deve funcionar antes de muito JavaScript?

Documentos renderizados e aprimoramento progressivo podem reduzir dependência do runtime.

02

A pessoa passa horas numa ferramenta com estado complexo?

Uma arquitetura SPA ou híbrida pode tornar transições e preservação de contexto mais naturais.

03

Quais URLs precisam funcionar diretamente?

Defina roteamento no servidor, fallback, status corretos, metadados e histórico antes de escolher framework.

04

O offline oferece valor real?

Liste jornadas possíveis sem rede e como dados pendentes serão sincronizados, cancelados ou resolvidos.

05

Qual é o orçamento de JavaScript?

Meça download, parsing, compilação, hidratação e execução em dispositivos representativos.

06

A equipe consegue operar a complexidade?

Build, cache, observabilidade, deploy, compatibilidade e depuração fazem parte do custo arquitetural.

SPA precisa reconstruir comportamentos que a navegação nativa já fornece. Após trocar de rota, atualize título, foco, anúncio para tecnologia assistiva, histórico e posição de rolagem. Links devem continuar sendo links e funcionar com teclado, abertura em nova aba e cópia de URL.

PARE E PENSE

Um site instalado no celular abre em janela própria. Isso prova que funciona offline?

Separe instalação, armazenamento de recursos e disponibilidade dos dados.

Não. O manifesto pode permitir uma experiência instalada, mas funcionamento offline depende de Service Worker, respostas previamente armazenadas, estratégia de cache e desenho das operações. Mesmo uma interface disponível pode depender de APIs que exigem rede.

CONTINUE EXPLORANDO

Referências e itens adicionais de estudo

Referências técnicas

Especificações e guias da plataforma usados nesta aula.

Itens adicionais de estudo

Experimentos para comparar arquiteturas.

  • No Network, compare o clique de uma MPA com a troca de rota de uma SPA.
  • Desative JavaScript e documente o que permanece utilizável em três sites.
  • Abra diretamente uma rota interna de SPA e verifique status, HTML inicial e fallback.
  • Use Lighthouse como diagnóstico, sem tratá-lo como certificado absoluto de PWA.
  • Simule offline no DevTools e liste interface, dados e operações realmente disponíveis.
  • Projete uma estratégia de atualização que não misture HTML novo com chunks JavaScript antigos.
  • Compare cache first, network first e stale-while-revalidate para conteúdo e API.