O desenvolvimento de aplicações web levou ao uso crescente do armazenamento do lado do cliente e existem várias maneiras de implementar o armazenamento do lado do cliente. A solução mais simples e compatível é o Cookie, mas como um verdadeiro armazenamento do lado do cliente, o Cookie tem muitas falhas fatais. Além disso, o comportamento userData também pode ser usado no IE6 e superior, o globalStorage pode ser usado no Firefox e o Flash Local Storage pode ser usado em ambientes com plug-ins Flash. No entanto, todos esses métodos têm limitações de compatibilidade, portanto, eles realmente não são. ideal para usar. Em resposta à situação acima, o HTML5 oferece uma solução mais ideal: se você precisar armazenar dados complexos, poderá usar o Web Database e poderá usar o SQL como um programa cliente (mas o padrão do Web Database está atualmente em um impasse, e atualmente os navegadores implementados são muito limitados); se você precisar armazenar dados que podem ser resolvidos simplesmente com pares chave/valor, você pode usar o Web Storage . Este artigo apresenta principalmente a situação específica do armazenamento na Web sob vários aspectos.
sessionStorage e localStorage
Na verdade, o Web Storage consiste em duas partes: sessionStorage e localStorage.
sessionStorage é usado para armazenar dados localmente em uma sessão. Esses dados só podem ser acessados por páginas na mesma sessão e os dados são destruídos quando a sessão termina. Portanto sessionStorage não é um armazenamento local persistente, apenas armazenamento em nível de sessão.
localStorage é usado para armazenamento local persistente A menos que os dados sejam excluídos ativamente, eles nunca expirarão.
Por que escolher o armazenamento na Web em vez dos cookies?
Comparado com os Cookies, o Web Storage apresenta muitas vantagens, que se resumem a seguir:
1. Maior espaço de armazenamento: Cada espaço de armazenamento independente no IE8 é de 10M. A implementação de outros navegadores é um pouco diferente, mas é muito maior que o Cookie.
2. O conteúdo armazenado não será enviado ao servidor: Quando um cookie é definido, o conteúdo do cookie será enviado ao servidor junto com a solicitação, o que representa um desperdício de largura de banda para dados armazenados localmente. Os dados no Web Storage existem apenas localmente e não interagem de forma alguma com o servidor.
3. Interfaces mais ricas e fáceis de usar: o Web Storage fornece um conjunto mais rico de interfaces, facilitando as operações de dados.
4. Espaço de armazenamento independente: Cada domínio (incluindo subdomínios) possui um espaço de armazenamento independente. Cada espaço de armazenamento é completamente independente, portanto não haverá confusão de dados.
Como é a compatibilidade?
Os seguintes testes foram realizados nos seguintes navegadores: IE8, Firefox3.6, Chrome5, Safari4, Opera10. Acontece que a implementação de APIs em cada navegador é basicamente a mesma e há alguns problemas de compatibilidade, mas não são. afetar o uso normal.
teste de armazenamento de sessão
Esta seção testa principalmente alguns recursos do sessionStorage. O foco do teste está na definição da sessão por cada navegador e na situação entre domínios. O método de teste é muito simples: abra a página A , escreva os dados da sessão atual na página A e, em seguida, use métodos diferentes para entrar na página B por meio dos links ou botões da página A. Se a página B puder acessar os dados da página A Isso significa que o navegador considera as páginas atuais A e B como a mesma sessão. Os resultados específicos do teste são mostrados na Tabela 1:
Tabela 1 Teste de compatibilidade do sessionStorage
Como pode ser visto na Tabela 1, por motivos de segurança, os dados da sessão não podem ser acessados entre domínios em todos os navegadores, incluindo subdomínios cruzados. Em outros aspectos, a implementação nos navegadores convencionais é relativamente consistente.