texto recorrer objetos modificar lista con cambiar atributo array agregar javascript html

javascript - recorrer - modificar html con jquery



Cómo obtener JS variable para retener el valor después de la actualización de la página? (4)

Esta pregunta ya tiene una respuesta aquí:

¿Es posible cambiar permanentemente una variable de JavaScript? Como en, si configuro la variable X y la hago igual a 1. Entonces al hacer clic en un botón, la cambio a 2. ¿Cómo puedo conseguir que esa variable permanezca en 2 al actualizar la página?


Además de cookies y localStorage , hay al menos otro lugar donde puede almacenar datos de clientes "semi-persistentes": window.name . Cualquier valor de cadena que asigne a window.name permanecerá allí hasta que se cierre la ventana.

Para probarlo, simplemente abra la consola y escriba window.name = "foo" , luego actualice la página y escriba window.name ; debería responder con foo .

Esto es un poco complicado, pero si no quiere que las cookies se llenen con datos innecesarios al servidor con cada solicitud, y si no puede usar localStorage por localStorage motivo (clientes heredados), puede ser una opción considerar.

window.name tiene otra propiedad interesante: es visible para ventanas servidas desde otros dominios; no está sujeto a la misma política de origen como casi cualquier otra propiedad de la window . Por lo tanto, además de almacenar datos "semi-persistentes" allí mientras el usuario navega o actualiza la página, también puede usarla para la comunicación entre dominios sin CORS.

Tenga en cuenta que window.name solo puede almacenar cadenas, pero con la amplia disponibilidad de JSON , esto no debería ser un gran problema, incluso para datos complejos.


Puede hacerlo almacenando cookies en el lado del cliente.


Tendrá que usar cookies para almacenar el valor en la actualización de la página. Puede usar cualquiera de las muchas bibliotecas de cookies basadas en JavaScript para simplificar el acceso a las cookies, como este

Si solo quieres admitir html5, puedes pensar en Storage api como localStorage / sessionStorage

https://developer.mozilla.org/en-US/docs/DOM/Storage#localStorage : utilizando https://developer.mozilla.org/en-US/docs/DOM/Storage#localStorage y la biblioteca de cookies

var mode = getStoredValue(''myPageMode''); function buttonClick(mode) { mode = mode; storeValue(''myPageMode'', mode); } function storeValue(key, value) { if (localStorage) { localStorage.setItem(key, value); } else { $.cookies.set(key, value); } } function getStoredValue(key) { if (localStorage) { return localStorage.getItem(key); } else { return $.cookies.get(key); } }


Esto es posible con window.localStorage o window.sessionStorage . La diferencia es que sessionStorage dura mientras el navegador permanezca abierto, localStorage sobrevive después de reinicios del navegador. La persistencia se aplica a todo el sitio web, no solo a una página.

Cuando necesite establecer una variable que debe reflejarse en la (s) siguiente (s) página (s), use:

var someVarName = "value"; localStorage.setItem("someVarKey", someVarName);

Y en cualquier página (como cuando la página se cargó), obténgala como:

var someVarName = localStorage.getItem("someVarKey");

.getItem() devolverá null si no hay ningún valor almacenado, o el valor almacenado.

Tenga en cuenta que solo los valores de cadena se pueden almacenar en este almacenamiento, pero esto puede superarse utilizando JSON.stringify y JSON.parse . Técnicamente, siempre que llame a .setItem() , llamará a .toString() en el valor y lo almacenará.

La guía de almacenamiento de DOM de MDN (vinculada a continuación), tiene soluciones alternativas / polyfills, que terminan localStorage a cosas como cookies, si localStorage no está disponible.

No sería una mala idea usar una mini biblioteca existente, o crear su propia, que abstraiga la capacidad de guardar cualquier tipo de datos (como literales de objetos, matrices, etc.).

Referencias