sessionStorage, IndexedDB e escolha da API certa
Compare as opções de armazenamento do navegador quanto à persistência, capacidade e acesso síncrono ou assíncrono.
sessionStorage, IndexedDB e escolha da API certa é uma aula grátis de React Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.
sessionStorage compartilha a interface
O sessionStorage expõe exatamente os mesmos métodos que o localStorage, mas sua duração está vinculada à aba. Quando a aba ou a janela é fechada, seus dados são limpos automaticamente.
Ele também é isolado por aba, portanto duas abas não compartilham dados do sessionStorage.
Caso de uso: formulário em várias etapas
O sessionStorage é ideal para um assistente de várias etapas no qual você deseja preservar o progresso após recarregamentos durante a sessão, mas descartá-lo quando a aba for fechada.
O usuário pode atualizar a página no meio do formulário sem perder os dados preenchidos, mas nada permanece depois que ele termina ou sai.
IndexedDB: assíncrono e grande
O IndexedDB é um banco de dados assíncrono e transacional integrado ao navegador. Ele pode armazenar muito mais que o limite de 5 MB do localStorage e lida com objetos estruturados, matrizes e até dados binários.
Por ser assíncrono, ele não bloqueia a linha de execução principal como o localStorage.
Adaptador de promessas do IDB-Keyval
A interface bruta do IndexedDB é detalhada e baseada em eventos, portanto bibliotecas como idb-keyval a encapsulam em funções simples baseadas em promessas, como get, set e del.
Isso oferece uma ergonomia semelhante à do localStorage, com a capacidade do IndexedDB e comportamento assíncrono.
IndexedDB para grandes objetos binários
Como o IndexedDB pode armazenar valores Blob e ArrayBuffer, ele é ideal para armazenar em cache imagens, áudio, arquivos baixados ou recursos off-line.
Esses dados ultrapassariam rapidamente os limites do localStorage e teriam de ser serializados como strings, algo que o IndexedDB evita.
A interface Cache para respostas HTTP
A interface Cache, frequentemente usada com agentes de serviço, armazena objetos completos de Response HTTP indexados pela requisição. Ela foi projetada especificamente para armazenar em cache respostas de rede priorizando o funcionamento off-line.
Use-a para fornecer recursos e respostas de API sem acessar a rede quando estiver off-line.
Comparação da persistência
O localStorage persiste indefinidamente até ser limpo, o sessionStorage dura apenas durante a sessão da aba, o IndexedDB persiste indefinidamente e os cookies têm expiração configurável por meio de seus atributos.
Combinar a duração necessária com o armazenamento adequado evita surpresas sobre quando os dados desaparecem.
Comparação da capacidade
localStorage e sessionStorage são limitados a aproximadamente 5 MB, os cookies a cerca de 4 KB cada, enquanto IndexedDB pode usar centenas de megabytes ou mais, dependendo do dispositivo e do navegador.
Para qualquer coisa de tamanho considerável, IndexedDB é a única opção prática no navegador.
Síncrono vs. assíncrono
localStorage, sessionStorage e os cookies são síncronos e bloqueiam a linha de execução principal durante o acesso. IndexedDB e a API Cache são assíncronos e baseados em promessas.
O acesso assíncrono mantém a interface responsiva mesmo ao ler ou gravar grandes quantidades de dados.
Escolhendo por caso de uso
Use cookies httpOnly para tokens de autenticação, para que os scripts não possam lê-los; localStorage para pequenas preferências persistentes; IndexedDB para arquivos grandes e dados offline complexos; e sessionStorage para rascunhos de curta duração dentro de uma aba.
Escolha o armazenamento de acordo com a sensibilidade, o tamanho e a duração dos dados.
Combinando tudo
Não existe uma única API de armazenamento melhor em todos os casos; cada uma faz concessões entre capacidade, persistência, comportamento síncrono e segurança. Conhecer as diferenças permite que você escolha conscientemente.
Um aplicativo típico usa várias: cookies para autenticação, localStorage para preferências e IndexedDB para recursos offline.
Verificação rápida
Teste sua compreensão das opções de armazenamento.
Recapitulação
Você comparou sessionStorage, localStorage, IndexedDB, cookies e a API Cache em relação à persistência, à capacidade, ao comportamento síncrono e à segurança.
Você aprendeu a escolher de acordo com o caso de uso: cookies para autenticação, localStorage para pequenas preferências, IndexedDB para dados grandes ou complexos e sessionStorage para rascunhos restritos à aba.
Perguntas Frequentes
A aula “sessionStorage, IndexedDB e escolha da API certa” é grátis?
Sim — o texto completo de “sessionStorage, IndexedDB e escolha da API certa” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.
O que vou aprender em “sessionStorage, IndexedDB e escolha da API certa”?
Compare as opções de armazenamento do navegador quanto à persistência, capacidade e acesso síncrono ou assíncrono. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar React Academy?
Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “sessionStorage, IndexedDB e escolha da API certa”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de React Academy?
Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Lendo e gravando no localStorage com React
- Sincronizando o estado com localStorage
- Tratando eventos de armazenamento entre abas
- sessionStorage, IndexedDB e escolha da API certa