Como obter a variável JS para reter valor após actualização da página?
É possível alterar permanentemente uma variável javascript? Como em, se eu definir a variável X e a fizer igual a 1. Então onClick de um botão muda essa variável para 2. Como posso conseguir que essa variável se mantenha em 2 na actualização da página?
115
3
Isto é possível com
window.localStorage
ouwindow.sessionStorage
. A diferença é quesessionStorage
dura enquanto o navegador permanecer aberto,localStorage
sobrevive ao reinício do navegador. A persistência aplica-se ao sítio web entire e não apenas a uma única página do mesmo.Quando precisar de definir uma variável que deve ser reflectida na(s) página(s) seguinte(s), utilize:
E em qualquer página (como quando a página foi carregada), obtenha-a como se a tivesse carregado:
.getItem()
devolveránulo
se não houver valor armazenado, ou o valor armazenado.Note-se que **somente valores de string*** podem ser armazenados neste armazenamento, mas isto pode ser ultrapassado utilizando
JSON.stringify
eJSON.parse
. Tecnicamente, sempre que chamar.setItem()
, chamará.toString()
sobre o valor e armazená-lo-á.MDN's DOM guia de armazenamento (linkado abaixo), tem soluções/polyfills, que acabam por cair de volta a coisas como biscoitos, se
localStorage
estiver't disponível.Seria uma má ideia utilizar uma minibiblioteca existente, ou criar a sua própria minibiblioteca, que abstraia a capacidade de guardar qualquer tipo de dados (como literalmente objectos, matrizes, etc.).
Referências:
Storage
- https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/StorageTerá de utilizar o cookie para armazenar o valor através da actualização da página. Poderá utilizar qualquer uma das muitas bibliotecas de cookies baseadas em javascript para simplificar o acesso aos cookies, como esta2.
Se quiser suportar apenas html5 então pode pensar em Armazenamento api como localStorage/sessionStorage
Ex: utilizando localStorage e biblioteca de cookies
Pode fazer isso armazenando cookies do lado do cliente.