/ / abrir uma nova aba perde o arraylist no armazenamento local javascript stack overflow - javascript, angularjs, local-storage, web-storage

abrir uma nova aba perde a arraylist no armazenamento local javascript stack overflow - javascript, angularjs, local-storage, web-storage

Meu trabalho de aplicativo tenta armazenar alguns dadosmeu armazenamento local que funciona bem quando não estou abrindo nenhuma nova aba ou janela, mas quando eu abro uma nova aba, minha matriz perde todos os dados armazenados anteriormente e armazena apenas os dados atuais. Por favor, sugira o que estou fazendo de errado aqui.

meu código é algo assim:

getCurrReqIdList = [];


localStorage.setItem("getCurrReqIdList", JSON.stringify(getCurrReqIdList));

var retrievedData = localStorage.getItem("getCurrReqIdList");
var getFinalReqIdList = JSON.parse(retrievedData);

if(getFinalReqIdList.length > maxCurrentConnectionLength) {
console.log("Hello");
getFinalReqIdList.shift();
getCurrReqIdList.shift();
localStorage.setItem("getCurrReqIdList",JSON.stringify(getFinalReqIdList));
}

Respostas:

0 para resposta № 1

O post é um pouco confuso, mas eu aposto que você tem as linhas

getCurrReqIdList = [];
localStorage.setItem("getCurrReqIdList", JSON.stringify(getCurrReqIdList));

executando toda vez que você carrega sua página, para inicializar a loja. Portanto, quando você abre uma nova guia, ela carrega a página e substitui o valor de armazenamento local por uma matriz vazia.

Sua página deve executar algo como:

getCurrReqIdList = localStorage.getItem("getCurrReqIdList");
if(getCurrReqIdList) {
getCurrReqIdList = JSON.parse(getCurrReqIdList);
} else {
getCurrReqIdList = [];
localStorage.setItem("getCurrReqIdList", JSON.stringify(getCurrReqIdList));
}

0 para resposta № 2

Isso não deve acontecer porque os dados armazenados no objeto localStorage também serão compartilhados entre as guias.

Você pode ter algum outro código que reconfigure ou exclua os dados do localStorage assim que você abrir uma nova guia.


0 para resposta № 3

De acordo com: este

você não pode compartilhar dados entre várias guias usando sessionStorage, porque uma nova página é uma nova sessão.

Você precisa substituir

setStorageType("sessionStorage")

de

setStorageType("localStorage") // which is default