javascript - No HTML5, o objeto localStorage é isolado por página/domínio?
O objeto localStorage do HTML5 é isolado por página/dominios? Estou me perguntando por causa de como eu nomearia as chaves do localStorage. Preciso de um prefixo separado? Ou posso nomeá-las como eu quiser?
Resposta #1
É por domínio e porta (as mesmas regras de segregação da política de mesma origem), para torná-lo por página você teria que usar uma chave baseada no location, ou algum outro método.
Você não precisa de um prefixo, mas use um se precisar. Além disso, sim, você pode nomeá-los como quiser.
Resposta #2
As lojas são por origem, onde "origem" é a mesma usada na Política de Mesma Origem (uma combinação de esquema [http vs. https, etc.], porta e host). Segundo a especificação:
Cada contexto de navegação de nível superior possui um conjunto único de áreas de armazenamento de sessão, uma para cada origem.
Assim, o armazenamento para http://a.example.com e o armazenamento para http://b.example.com são separados (e ambos são separados de http://example.com), pois todos são hosts diferentes. Da mesma forma, http://example.com:80, http://example.com:8080 e https://example.com são todas origens diferentes.
Não há nenhum mecanismo incorporado no armazenamento web que permita a uma origem acessar o armazenamento de outra.
Observe que é a origem, não a URL, então http://example.com/page1 e http://example.com/page2 ambos têm acesso ao armazenamento para http://example.com.